Панель вкладок не может получить доступ к Navigationcontroller - PullRequest
2 голосов
/ 30 июля 2009

У меня есть приложение navigationController.

Я нажимаю на вкладку в представлении. Вкладки рабочие, название изменено, отлично. Теперь на одной из моих вкладок есть список, и я пытаюсь создать ссылку на дочернюю страницу на панели вкладок:

NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"ProfileDetailController" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];

Ничего не происходит. Курс это работает:

self.view = nextController.view;

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

Ответы [ 3 ]

3 голосов
/ 30 июля 2009

Звучит так, как будто вы толкаете UITabBarController на UINavigationController? Из документации Apple вы не можете вставить контроллер панели вкладок в контроллер навигации.

То, что вы, вероятно, хотите сделать, это наоборот: иметь контроллер панели вкладок с UINavigationController s в качестве элементов вкладки. Это похоже на интерфейс, скажем, приложения iPod или приложения «Телефон».

0 голосов
/ 08 мая 2011

Мне кажется, я нашел простое решение.

В вашем классе, где вы хотите выдвинуть представление, объявите локальный UINavigationController как свойство:

@interface userMenu : UIViewController  {
UINavigationController *navigationController;
}
@property (nonatomic, retain) UINavigationController *navigationController;

Не забудьте синтезировать его.

В вашем классе для tabBarController:

NSArray *viewControllersArray = [self.tabBarController viewControllers];

userMenu *childUserMenu = (userMenu*) [viewControllersArray objectAtIndex:0];
childUserMenu.navigationController = self.navigationController;

После этого вы можете сделать [self.navigationController pushViewController:nextController animated:YES];

0 голосов
/ 30 июля 2009

Я согласен с Алексом - TabBarController внутри контроллера навигации не выглядит хорошим шаблоном пользовательского интерфейса.

В любом случае, чтобы ответить на ваш вопрос: Вы пытались получить доступ к контроллеру навигации через контроллер панели вкладок?

self.tabBarController.navigationController

Я не уверен, что это работает, но вы можете попробовать.

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