Сбой навигационного контроллера во второй раз - PullRequest
0 голосов
/ 01 мая 2009

Я использую один контроллер навигации в моем приложении. У меня есть один основной вид (с контроллером основного вида) и несколько вариантов просмотра. Представления параметров просматриваются навигационным контроллером при нажатии кнопки на панели инструментов основного вида.

В первый раз все работает как положено. Когда я вернулся к основному виду с контроллера навигации и снова попытался перейти к представлению параметров (то есть к контроллеру навигации), мое приложение вылетало.

Ниже приведен мой код,

//Jump to navigation controller from main view controller

optionsViewController *optionsView = [[optionsViewController alloc] initWithNibName:@"optionsView" bundle:nil];
navControllerSettings = [[UINavigationController alloc] initWithRootViewController:(UIViewController *) optionsView];
[self presentModalViewController:self.navControllerSettings animated:YES];

//Code to go back to main view from navigation controller

[self.navigationController dismissModalViewControllerAnimated:YES];

Какой правильный механизм для управления навигационным контроллером? Нужно ли разблокировать / разблокировать навигационный контроллер или параметры просмотра?

Пример кода поможет лучше.

Ответы [ 3 ]

0 голосов
/ 02 мая 2009

Спасибо за ответ.

Но моя прикладная архитектура состоит в том, что у меня есть один основной вид, на котором я отображаю несколько вещей, и панель инструментов. Панель инструментов содержит одну кнопку, после нажатия которой этот контроллер навигации создается и отображается на экране.

используя кнопку "назад", я зашел на главный экран. Но потом после того, как я не смог снова перейти на навигацию, так как она зависает при выполнении следующей строки

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

В чем здесь проблема?

Вишал N

0 голосов
/ 29 января 2010

У меня была проблема, похожая на эту, с ее падением в presentModalViewController: со второй попытки. Проблема была вызвана вызовом [self becomeFirstResponder] в viewDidAppear: внутри первого представленного мной UIViewController, но мне не удалось вызвать [self resignFirstResponder] в viewWillDisappear:.

0 голосов
/ 01 мая 2009

Ваш навигационный контроллер настраивается только один раз, затем вы толкаете и извлекаете другие виды из его стека.

UINavigationController *navController = [[UINavigationController alloc] init];
UIViewController *yourMainViewController = [[yourMainViewControllerClass alloc] init];

// when you are ready to go to your options view
optionsViewController *optionsView = [[optionsViewController alloc] initWithNibName:@"optionsView" bundle:nil];

[navController pushViewController:optionsViewController animated:YES];

// the back button and the pop from the stack when it is hit is handled auto-magically for you
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...