【问题标题】:UIPageViewController: App crashs when adding more than one view controllerUIPageViewController:添加多个视图控制器时应用程序崩溃
【发布时间】: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

标签: ios iphone objective-c uistoryboard uipageviewcontroller


【解决方案1】:

如果您将错误的或不存在的ID 传递给instantiateViewControllerWithIdentifier: 方法,您将收到异常并且您的应用程序将终止。这很可能是正在发生的事情。

ID 位于Interface Builder 中的Identity Inspector 选项卡下。它被称为Storyboard ID。你可以给它任何你想要的唯一名称。最重要的是在实例化视图控制器时使用这个ID。否则你的代码会引发异常。

【讨论】:

  • 当我只有一个视图控制器时,一切正常。但是当我添加两个我的应用程序时。
猜你喜欢
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2011-05-30
  • 1970-01-01
相关资源
最近更新 更多