Как переключать вкладки и pushViewController одновременно? - PullRequest
2 голосов
/ 24 августа 2009

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

В самом табличном представлении у меня нет проблем с отображением конкретного подробного представления, например:

[self.navigationController pushViewController:theView animated:YES];

и я также могу переходить на вкладки, используя

self.tabBarController.selectedIndex = 1; // 1= right tab

но я не могу понять, как сделать то и другое. Я пробовал

self.tabBarController.selectedIndex = 1; // 1= right tab
// alloc and init theView here
[self.navigationController pushViewController:theView animated:YES];

но это не работает.

EDIT:

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

Я также попробовал то, что предложил criscokid, но ничего не произошло.

РЕДАКТИРОВАТЬ 2:

Попытка объяснить, что на каждой вкладке:

Root (Tab Bar Controller)  
|  
--(Left Tab)-- UIViewController (I want to go from here...)  
|  
--(Right Tab)---UINavigationController  
             |  
             ---UITableViewController  
                 |  
                 ----UIViewController (...to here) 
                      ^ specific view with data from specific row
                        in table view (that is 'theView' from above)

Ответы [ 2 ]

4 голосов
/ 04 ноября 2011

Для меня правильный путь был:

 UINavigationController * navigationController = (UINavigationController *) [[self tabBarController] selectedViewController];
 [navigationController pushViewController:viewController animated:YES];

ответ criscokid имеет один избыточный вызов navigationController. Это потому, что ваш selectedViewController на самом деле UINavigationViewController.

1 голос
/ 25 августа 2009

Если вы переключаете панель вкладок и помещаете ViewController в стек контроллера навигации тем же способом, вы не захотите использовать self.navigationController. Если я правильно понимаю, вы хотите добавить его в навигационный контроллер на правой вкладке. Я полагаю, вы захотите использовать:

[[[[self tabBarController] selectedViewController] navigationController] pushViewController:theView animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...