2014-02-24 4 views
0

Я пытаюсь создать учебные экраны для своего приложения. Я использую UIPageViewController. Но когда я добавляю два ViewControllers, мое приложение падает. Вот мой код:UIPageViewController: сбой приложений при добавлении нескольких контроллеров представления

- (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]; 
+0

Вы можете сообщить об ошибке при аварии? –

+0

Вы уверены, что 'self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier: @" PageViewController "];' возвращает 'UIPageViewController'? – mharper

ответ

0

Если вы передаете неправильный или несуществующий ID к instantiateViewControllerWithIdentifier: метод вы получаете исключение, и ваше приложение завершится. Скорее всего, это то, что происходит.

Идентификатор находится под вкладкой Identity Inspector в Interface Builder. Это называется Storyboard ID. Вы можете дать ему любое уникальное имя, которое вы хотите. Самое главное - использовать этот ID при создании экземпляра контроллера вида. В противном случае ваш код станет исключением.

+0

Когда у меня только один контроллер View, все работает нормально. Но когда я добавляю два моих приложения. – user3348243

Смежные вопросы