将UINavigationController添加到UIPageViewController中

时间:2013-10-28 10:53:58

标签: ios uinavigationcontroller uipageviewcontroller

我创建了一个UIPageViewController,其中包含四个UIViewController 使用故事板,但我需要的是最后一个是UINavigationController。 有一种方法可以将UINavigationController添加到UIPageViewController 或者将UIViewController转换为UINavigationController

这是我的代码:

- (void)viewDidLoad
{
  [super viewDidLoad];
   self.dataSource = self ;

  [self setViewControllers:@[self.pagina1]direction:UIPageViewControllerNavigationDirectionReverse animated: YES   completion:nil  ];
UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"carbon.jpg"]];

  [self.view addSubview:backgroundImage];
  [self.view sendSubviewToBack:backgroundImage];
  // [backgroundImage release];
}




- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];


}


- (ViewControllerPagina1 *) home1 {

    if( !_home1 )
    {
        UIStoryboard *storyboard = self.storyboard ;
        _home1 = [storyboard instantiateViewControllerWithIdentifier:@"Prima pagina"] ;
    }

    return _home1 ;
}

- (ViewControllerPagina2 *) home2 {

    if( !_home2 )
    {
        UIStoryboard *storyboard = self.storyboard ;
        _home2 = [storyboard instantiateViewControllerWithIdentifier:@"Seconda pagina"] ;
    }

    return _home2 ;
}

- (ViewControllerPagina3 *) home3 {

    if( !_home3 )
    {
        UIStoryboard *storyboard = self.storyboard ;
        _home3 = [storyboard instantiateViewControllerWithIdentifier:@"Terza pagina"] ;
    }

    return _home3 ;
}


- (UIViewController *) pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    UIViewController *nextViewController = nil ;

            if( viewController == self.home1 ) nextViewController = self.home2 ;
    else    if( viewController == self.home2 ) nextViewController = self.home3 ;
    else    if( viewController == self.home3 ) nextViewController = self.home1 ;
    return nextViewController ;

}

- (UIViewController *) pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    UIViewController *nextViewController = nil ;

    if( viewController == self.home1 ) nextViewController = self.pagina3 ;
    else    if( viewController == self.home2 ) nextViewController = self.home1 ;
    else    if( viewController == self.home3 ) nextViewController = self.home2 ;
    return nextViewController ;

}

实际上“home3”是UIViewController, 我需要在UINavigationController

中进行传播

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不确定你在这里想做什么。但是,如果您需要导航控制器内部的视图控制器,请创建导航控制器,将视图控制器添加到其视图控制器阵列,然后将导航控制器(现在包含视图控制器)添加到页面控制器。

我没有真正使用故事板。我以编程方式创建视图控制器。这很容易做到,我相信比故事板更灵活。