Как правильно настроить дополнительный вид для поддержки контроллера навигации на iPhone? - PullRequest
1 голос
/ 05 марта 2010

У меня есть приложение для iPhone, которое показывает простой вид (вид 1) с кнопкой. Когда пользователь нажимает эту кнопку, View 2 открывается в виде вызова

[self presentModalViewController:self.view2 animated:YES];

Я хочу, чтобы View 2 поддерживал навигационный контроллер. Весь код, который я нахожу, говорит вам, как настроить приложение Navigation Controller, но я не могу понять, как настроить это с помощью IB.

Я создал простой файл view2.xib. Я установил класс владельца файла для view2. Я добавляю навигационный контроллер в XIB. Я создаю IBOutlet с именем view2Nav в view2.h для UINavigationController. Я связываю view2Nav с NavigationController в view2.xib.

Затем я создаю класс view3 с помощью view3.xib. Я установил RootViewController в view2.xib для класса view3 и установил имя NIB для view3.

Затем я возвращаюсь и запускаю программу. Когда я нажимаю кнопку в представлении 1, приложение вылетает при попытке создать представление 2.

Я знаю, что я должен пропустить настройку или что-то в этом роде.

1 Ответ

2 голосов
/ 05 марта 2010
MySecondViewController *secondVC = [[MySecondViewController alloc] initWithNibName:@"MySecondViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:secondVC];
[self presentModalViewController:navigationController animated:YES];
[secondVC release];
[navigationController release];

Забудь о IB. Делайте что-нибудь в коде :) Это быстрее, и вы точно будете знать, почему и как это работает.

Я не уверен, что вы можете передать self.view2 на presentModalViewController. Если self.view2 является подклассом UIViewController, вы можете. Если это просто UIView, вы не должны. Если факт, вы не можете вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...