Установите контроллер навигации без делегата приложения - PullRequest
0 голосов
/ 25 апреля 2009

Я хотел бы показать навигационный контроллер после нажатия кнопки. В каждом руководстве предполагается, что контроллер навигации будет первым экраном, поэтому он связывает его с делегатом приложения, но делегат приложения отображается только в MainWindow.xib. Как вы, ребята, добавили контроллер навигации в представление, отличное от MainWindow?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 18 мая 2009

Вот пример кода, который можно расширить на ответ Роджера. Следующий метод связан с некоторым пользовательским взаимодействием на текущем контроллере представления (например, для создания электронного письма). Это даст композитному представлению панель навигации сверху, а не кнопки кодирования внутри вашего пользовательского представления.

-(void) composeButtonPushed: (id) sender {
    ComposeViewController *controller = [[ComposeViewController alloc] initWithNibName:@"ComposeView" bundle:nil];
    UINavigationController *composeNavController = [[UINavigationController alloc] initWithRootViewController:controller];
[self presentModalViewController:composeNavController animated:NO];
}
0 голосов
/ 26 апреля 2009

UINavigationController предназначен для навигации по иерархии представлений с помощью UIViewController. Если у вас нет корневого UIViewController, он не будет работать (и не имеет смысла). Если у вас есть UIViewController, вы просто отправляете сообщение инициализации - (id)initWithRootViewController:(UIViewController *)rootViewController на новый контроллер навигации, передавая ваш UIViewController.

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