У меня есть панель вкладок MainViewController
с несколькими кнопками панели вкладок, первая из которых - View 1
, представляющая собой контроллер навигации со стеком до 3 или 4 дочерних элементов. Последняя кнопка панели вкладок - SettingsViewController
, с функцией, похожей на 'Logout' внутри, которая вызывает метод в AppDelegate, который удаляет MainViewController
и отправляет пользователя обратно на страницу входа.
При нажатии кнопки выхода из системы на SettingsViewController
я хочу, чтобы AppDelegate установил для выбранной вкладки значение View 1
(что я сделал), отправьте пользователя обратно в представление входа в систему (также выполнено), а также popToRootViewController на View 1
с которой я борюсь.
Я пытался использовать свойство viewControllers на вкладке TabBar, чтобы получить ссылку на контроллер представления с индексом 0, но это не является правильным способом, если я не реализую его неправильно.
Моя последняя попытка:
// Fine
mainViewcontroller.tabBarController.selectedIndex = 0;
// Not so fine
NSArray *allViewControllers = [mainViewcontroller.tabBarController viewControllers];
View1 *vc = [allViewControllers objectAtIndex:0];
[vc.navigationController popToRootViewControllerAnimated:NO];
Еще одна попытка просто перебрать все контроллеры представления на вкладке и получить доступ к корню, который, похоже, тоже не работает:
for (UIViewController *viewController in mainViewcontroller.tabBarController.viewControllers)
{
[viewController.navigationController popToRootViewControllerAnimated:NO];
}
Может кто-нибудь помочь?