2012-02-22 10 views
1

Я хотел бы загрузить новый ViewController/View после проверки имени пользователя и пароля для входа в систему. У меня есть следующий:Невозможно создать новый контроллер

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
... 
... 
ViewController *Workflow = [self.storyboard  instantiateViewControllerWithIdentifier:@"Workflow"]; 
     [self.navigationController pushViewController:Workflow animated:YES]; 

Затем в раскадровке, я добавил новый контроллер представления и ударил новый UIView там. Затем я изменил идентификатор ViewController на «Workflow». Однако после нажатия этой кнопки ничего не происходит. Есть идеи?

ответ

0

Я бы сначала NSLog указатель кнопки отправил вам действие, он чрезвычайно полезен для длинных предупреждений и делегирует методы с операторами switch. Если ничего не происходит, тогда ничего не делается.

0

Похоже, что у вас может отсутствовать UINavigationController из раскадровки. Если ваши контроллеры просмотра не находятся в пределах UINavigationController, pushViewController: не будет иметь никакого эффекта.

Если это так, то, что вам нужно сделать, это:

  • Перетащите экземпляр UINavigationController из библиотеки объектов на раскадровку. Удалите контроллер корневого представления, который поставляется вместе с ним.
  • С контроллером навигации, выбранным на раскадровке, установите флажок «Исходный контроллер просмотра» в Инспекторе атрибутов.
  • Удерживайте клавишу Control на клавиатуре и перетащите мышью из контроллера навигации в свой первый контроллер представления (предположительно тот, где вы показываете вид предупреждения), чтобы создать сегмент. В раскрывающемся списке «Распаковка строк», которое появляется после отпускания, выберите «Связь - Корневой контроллер просмотра»
+0

Спасибо за сжатый отклик. Я включил контроллер навигации в качестве корневого контроллера в представление, с которым я работаю. Должен ли я добавить новый контроллер ViewController в контроллер навигации? Если я запустил программу, как описано вами, после того, как я нажму кнопку, которая запускает все, если это произойдет, она замерзает, и я получаю ошибку SIGBART в autorelease/ return UIApplicationMain (argc, argv, nil, NSStringFromClass ([Класс AppDelegate])); Линия кода в моем main.m. – DrTchocky

+0

Следует отметить, что на выходе выводятся следующие данные: 2012-02-21 18: 11: 22.331 HMG [14991: f803] *** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «Нажатие навигации контроллер не поддерживается » – DrTchocky

+0

Контроллер навигации должен быть вашим начальным контроллером представления для вашего APP, то есть в раскадровке первая стрелка должна указывать на этот контроллер представления, а флажок - это контроллер начального представления в контролеров атрибутов, который должен быть проверен (то есть сказать, два способа сделать то же самое.) Вы должны нажать на свой пользовательский контроллер представлений («Рабочий процесс» в вашем примере). Он не должен быть навигационным контроллером. – jonkroll

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