Несколько контроллеров навигации в приложении - PullRequest
0 голосов
/ 15 марта 2012

У меня есть приложение с navigation controller, но у моего приложения также есть простое отдельное представление, которое не является частью navigation controller.И что я хочу сделать, это добавить совершенно новый navigation controller к этому представлению.Для моего первого navigation controller я использовал этот код в своем AppDelegate :

   UINavigationController *navigationController = [[UINavigationController new]   initWithRootViewController:viewController1];

    navigationController.viewControllers = [NSArray arrayWithObject:viewController1];

    self.window.rootViewController = navigationController;

Но какой код я должен использовать, если я хочу создать новый Navigation Controller?

Спасибо!

ОБНОВЛЕНИЕ:

Итак, я сделал несколько снимков:

На одной первой фотографии есть navigation controller (чтообъявлен в AppDelegate).И он содержит кнопку информации.Затем, когда мы нажимаем кнопку, мы переходим к другому виду (рис. 2).И это просто navigation bar в этом представлении, а не navigation controller.Я хочу добавить контроллер навигации, а не панель навигации в этом представлении, чтобы пользователи могли использовать UITableView легко

enter image description here

enter image description here

1 Ответ

2 голосов
/ 15 марта 2012

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

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController1];
self.window.rootViewController = navController;

Тем не менее, вы будете создавать другие UINavigationController точно так же.Вы нажимаете кнопку информации на первом экране, я думаю, вы можете представить контроллер навигации модально.

- (IBAction)infoButtonAction:(id)sender;
{
    //  InfoTableViewController is the controller with Instructions, Contact, and something else
    //  my Russian isn't so good.
    InfoTableViewController *tableController = [[InfoTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableController];
    navController.modalPresentationStyle = UIModalPresentationFormSheet;    //  or whatever
    [self presentModalViewController:navController animated:YES];
}

Обратите внимание, что я не занимаюсь управлением памятью, потому что я не знаю, является ли это ARC илине.Так должно быть?

...