#iphone #ios #uinavigationcontroller #uitabbarcontroller
#iPhone #iOS #uinavigationcontroller #uitabbarcontroller
Вопрос:
У меня есть NavController
внутри 3 моего TabBarController
приложения. Когда я захожу в функцию выхода из моего приложения и выхожу из системы, которая находится в TabBarController
№ 2, я вернул ее к TabBarController
№ 1. Однако она не возвращается к корню NavController вкладки 1.
В NavController
я ссылался на то, appDelegate
как я поступил с TabBarController
, но я не смог сделать то, что я сделал с TabBarController
, с помощью setSelectedIndex.
Как я могу заставить мой NavController
вернуться к первому представлению?
Спасибо.
Код
if ([buttonTitle isEqualToString:@"Logout"]) {
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UITabBarController *tabBarController = appDelegate.rootController;
ProductsNavController *productsNavController = appDelegate.productsNavController;
[tabBarController setSelectedIndex:0];
Это то, что я сделал для панели вкладок, могу ли я сделать что-то подобное для навигации?
Ответ №1:
Вы вызывали, popToRootViewControllerAnimated:
как указано в документации?
После обновления попробуйте следующее:
[…]
[tabBarController setSelectedIndex:0];
[appDelegate.productsNavController popToRootViewControllerAnimated:NO];
Комментарии:
1. @unset: Не могу ли я сделать что-то похожее на код, который я привел выше? Спасибо.
2. @unset: в некотором смысле это работает. Поскольку он возвращается на уровень выше, но не до самого начала. Есть ли способ пройти весь путь до самого начала? Спасибо.
3. Я сделал это, приятель.
[appDelegate.productsNavController popToViewController:[appDelegate.productsNavController.viewControllers objectAtIndex:0] animated:YES];