UIPageViewController:添加多个视图控制器时应用程序崩溃
Posted
技术标签:
【中文标题】UIPageViewController:添加多个视图控制器时应用程序崩溃【英文标题】:UIPageViewController: App crashs when adding more than one view controller 【发布时间】:2014-02-24 19:55:24 【问题描述】:我正在尝试为我的应用制作教程屏幕。我正在使用 UIPageViewController。但是当我添加两个 ViewController 时,我的应用程序崩溃了。这是我的代码:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
//This is not final. Just for demo
return _secondPage;
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
//This is not final. Just for demo
return _firstPage;
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
return [self.pageControllers count];
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
return 0;
@end
当我调试应用程序时,它会因这行代码而崩溃:
[self.pageViewController setViewControllers:_pages direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
【问题讨论】:
你能在崩溃时发布错误吗? 您确定self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
正在返回UIPageViewController
?
【参考方案1】:
如果您将错误的或不存在的ID
传递给instantiateViewControllerWithIdentifier
: 方法,您将收到异常并且您的应用程序将终止。这很可能是正在发生的事情。
ID 位于Interface Builder
中的Identity Inspector
选项卡下。它被称为Storyboard ID
。你可以给它任何你想要的唯一名称。最重要的是在实例化视图控制器时使用这个ID
。否则你的代码会引发异常。
【讨论】:
当我只有一个视图控制器时,一切正常。但是当我添加两个我的应用程序时。以上是关于UIPageViewController:添加多个视图控制器时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
使用 UIPageViewController 在多个视图控制器之间滑动
具有多个 XIB 的 UIPageViewController
在 UIPageViewController 中滚动多个页面会创建白色闪光