Как сделать popToRoot на одной вкладке, когда пользователь находится на другой вкладке? - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть приложение для iPhone с четырьмя вкладками.На вкладке 1 есть UINavigationController.Пользователи могут пройти три уровня глубины в стеке представлений.

Допустим, пользователь переходит на уровень 2 навигационной вкладки 1, а затем переключается на вкладку 3. Есть ли способ сделать кнопку, которую пользовательМожно ли нажать, что затем будет popToRoot, чтобы этот навигационный контроллер на вкладке 1 (за кадром), пока они все еще на вкладке 3?Таким образом, когда снова коснитесь вкладки 1, они будут на уровне корня?

Я не хочу, чтобы он был на уровне корня КАЖДЫЙ раз, когда они касаются вкладки 1, только когда они коснутся этой кнопки на вкладке 3,всплывающая вкладка 1 до корневого уровня.

Ответы [ 2 ]

1 голос
/ 24 ноября 2015

На swift языке. Поместите этот код в AppDelegate.

Добавить UITabBarControllerDelegate к AppDelegate

func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController){
    if let navController = viewController as? UINavigationController{
        navController.popToRootViewControllerAnimated(false)
    }
}
1 голос
/ 16 ноября 2011

Вы можете отправлять сообщения любому действительному объекту, если у вас есть ссылка на него.Если вашему делегату приложения принадлежит UITabBarController и каждый контроллер представления в UITabBarController является UINavigationController, то в любом месте вашего приложения вы можете сделать следующее:

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