2012-03-15 3 views
0

У меня есть приложение с 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?

Спасибо!

UPDATE:

Итак, я сделал несколько фотографий:

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

enter image description here

enter image description here

+0

Считаете ли вы использование UITabBarController? Я не могу полностью понять ваш дизайн. Чего вы пытаетесь достичь? – Canopus

+0

Нет, я не использую UITabBarController. Я просто хочу добавить новый контроллер навигации в точку зрения. И это мнение не является частью моего первого навигационного контроллера. И я не могу использовать код, который я использовал в AppDelegate – SmartTree

ответ

2

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

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

Это говорит, вы можете создать другие UINavigationController S точно таким же образом.

Update:

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

- (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 или нет. Так оно должно себя вести?

+0

Спасибо! Да, в моем приложении есть nav. контроллер, объявленный в AppDelegate. Таким образом, он работает хорошо, но у меня также есть некоторые виды, которые не являются частью этой панели навигации. И я хочу добавить новый контроллер навигации в один из ваших представлений, так что это будет два навигационных контроллера во всем приложении. Я пробовал код выше, но когда я пишу ** self ** в файле .m, xcode не предлагает мне выбрать ** окно ** после или что-то, поэтому он не работает. Извините за сложность. – SmartTree

+0

Где эти три других вида существуют в иерархии представлений? Возможно, мы могли бы помочь вам с более полным описанием этого. Как предположил @Canopus, я также понимаю, что дизайн 'UITabBarController' звучит так, как вы хотите, но трудно сказать. – FluffulousChimp

+0

Пожалуйста, проверьте мои изменения :) – SmartTree

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