iPhone - объединение панели вкладок с несколькими панелями навигации - PullRequest
2 голосов
/ 27 февраля 2010

Я пытаюсь создать приложение для iPhone, которое имеет панель вкладок в качестве корневого контроллера и несколько панелей навигации. Я сомневаюсь, я должен создать один класс NavigationBarController для каждой панели навигации, которую я хочу вставить в приложение? Или возможно создать только один контроллер навигации, который управляет всеми контроллерами панели навигации, существующими в приложении?

В случае, если в приложении существует несколько контроллеров навигации, могу ли я использовать «self» для доступа к правильному контроллеру навигации, который толкает / выдвигает вид? Или я должен использовать делегат делегата приложения для доступа к контроллерам каждой панели навигации?

(Я предполагаю, что все контроллеры панели навигации объявлены в делегате приложения, правильный ли это подход или более элегантный?)

Заранее большое спасибо

Ответы [ 4 ]

2 голосов
/ 27 февраля 2010

Обычный способ добиться этого - создать приложение панели вкладок, а затем изменить каждый элемент панели вкладок на UINavigationController. Если вы сделаете это, вы определенно можете использовать self для доступа к navigationController - в частности, вы можете использовать self.navigationController.

1 голос
/ 30 ноября 2010

Следите за возможной утечкой в ​​этой части кода выше:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tools];

Вы можете использовать это вместо:

UIBarButtonItem* rightButtonBar = [[UIBarButtonItem alloc] initWithCustomView:tools];
self.navigationItem.rightBarButtonItem = rightButtonBar;
[rightButtonBar release];

;) ... или используйте авто-релиз

0 голосов
/ 15 августа 2011

Обычный способ добиться этого - создать приложение панели вкладок, а затем изменить каждый элемент панели вкладок на UINavigationController.

Это способ достижения этого.Я загрузил 5 навигационных контроллеров в панель управления.Ключевой совет - спланировать навигацию в приложении, так как каждый navController должен выполняться там, где начинается новое дерево навигации.

0 голосов
/ 27 февраля 2010

Вставьте уникальный UINavigationController для каждой вкладки.

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

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