问题:分页导航--子视图控制器自定义实现

想自定义子视图控制器来实现分页导航,出了一点点问题咯,先附上代码

(1),.h文件中:

#import <UIKit/UIKit.h>


@interface ViewController : UIViewController<UIPageViewControllerDataSource,UIPageViewControllerDelegate>


{


    int pageIndex;


}


@property(nonatomic,strong) UIPageViewController *pageViewController;


@property(nonatomic,strong) UIViewController *page1;


@property(nonatomic,strong) UIViewController *page2;


@property(nonatomic,strong) UIViewController *page3;


@property(nonatomic,strong) UIViewController *page4;


@property(nonatomic,strong) UIViewController *page5;


@property(nonatomic,strong) UIViewController *page6;


@end



(2),.m文件中:

#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

    

    self.view.frame=CGRectMake(0, 0, 320.0f, 420.0f);

    

    self.pageViewController=[[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];

    

    self.pageViewController.delegate=self;

    self.pageViewController.dataSource=self;


    self.page1=[[UIViewController alloc] init];

    UIImageView *iv1=[[UIImageView alloc] init];

    iv1.image=[UIImage imageNamed:@"B4-中国.png"];

    iv1.frame=self.view.frame;

    [self.page1.view addSubview:iv1];

    

    

    

    self.page2=[[UIViewController alloc] init];

    UIImageView *iv2=[[UIImageView alloc]init];

    iv2.image=[UIImage imageNamed:@"B3-韩国.png"];

    iv2.frame=self.view.frame;

    [self.page2.view addSubview:iv2];

    

    

    self.page3=[[UIViewController alloc] init];

    UIImageView *iv3=[[UIImageView alloc]init];

    iv3.image=[UIImage imageNamed:@"B2-尼日利亚.png"];

    iv3.frame=self.view.frame;

    [self.page3.view addSubview:iv3];

    

    self.page4=[[UIViewController alloc] init];

    UIImageView *iv4=[[UIImageView alloc]init];

    iv4.image=[UIImage imageNamed:@"A1-南非.png"];

    iv4.frame=self.view.frame;

    [self.page4.view addSubview:iv4];

    

    self.page5=[[UIViewController alloc] init];

    UIImageView *iv5=[[UIImageView alloc]init];

    iv5.image=[UIImage imageNamed:@"A2-墨西哥.png"];

    iv5.frame=self.view.frame;

    [self.page5.view addSubview:iv5];

    

    

    self.page6=[[UIViewController alloc] init];

    UIImageView *iv6=[[UIImageView alloc]init];

    iv6.image=[UIImage imageNamed:@"A3-乌拉圭.png"];

    iv6.frame=self.view.frame;

    [self.page6.view addSubview:iv6];

    //都是自定义视图,因此不需要获取故事板,通过storyBoard ID找到子视图控制器等

    //UIStoryboard *mainstoryboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];

    

    NSArray *viewControllers=@[self.page1];

    

    //设定首页显示视图,显示视图与书脊有关

    //setViewControllers:后只能添加一个数组

    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];

    

    //pageViewController添加到父视图控制器中去

    [self addChildViewController:self.pageViewController];

    [self.view addSubview:self.pageViewController.view];

    

    pageIndex=0;

    

    

    // Do any additional setup after loading the view, typically from a nib.

}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



//返回当前视图控制器之前的视图控制器,用于上一页的显示


-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{

    

    pageIndex--;

    if(pageIndex<0){

        

        pageIndex=0;

        return nil;

        

    }

    

    

    //获取故事板

    //UIStoryboard *mainStoryboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];

    

    //根据索引号,获取子视图控制器的ID

    NSString *pageID=[NSString stringWithFormat:@"page%i",pageIndex+1];

    

    //根据ID,获取子视图控制器

    //UIViewController *pvController=[mainStoryboard instantiateViewControllerWithIdentifier:pageID];

    

    UIViewController *pvController=[[UIViewController alloc]initWithNibName:pageID bundle:nil];

    

    return pvController;



备注:就是不知道在这一块,怎么根据名称,返回相应的子视图控制器;

    

    

}



//返回当前视图控制器之后的视图控制器,用于下一页的显示

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{

    

    pageIndex++;

    if(pageIndex>2){

        

        pageIndex=2;

        return nil;

        

    }

    

    // Direction Forward=Forward After;

    

   /* UIStoryboard *mainstoryboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];

    

    NSString *pageID=[NSString stringWithFormat:@"page%i",pageIndex+1];

    

    

    UIViewController *pvController=[mainstoryboard instantiateViewControllerWithIdentifier:pageID];

    

    return pvController;*/

    

    //根据索引号,获取子视图控制器的ID

    NSString *pageID=[NSString stringWithFormat:@"page%i",pageIndex+1];

    

    UIViewController *pvController

    

   // UIViewController *pvController=[[UIViewController alloc]initWithNibName:pageID bundle:nil];

    

    return pvController;

    

    

}


-(UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation{

    

    //单页翻动:

    self.pageViewController.doubleSided=NO;

    //定义书脊位置在书的最左边,书将从右向左翻动

    return UIPageViewControllerSpineLocationMin;

    

}






@end




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值