Выход из системы NavController

#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];