сбросить предыдущий контроллер навигации в приложении панели вкладок

У меня есть приложение панели вкладок с контроллером навигации и контроллерами просмотра внутри него. Вот как это выложено.

Tab Bar 1
- Navigation Controller
-- Root View Controller
-- Other view controller

Tab Bar 2
- Navigation Controller
-- Root View Controller

Что я хочу сделать, так это когда я перехожу к контроллеру другого представления на панели вкладок 1, а затем переключаюсь на панель вкладок 2, я хочу, чтобы панель вкладок 1 вернулась к своему корневому контроллеру представления.

Я ищу поведение, подобное приложению iPod. Любая помощь приветствуется. Спасибо!


person Marco    schedule 26.11.2010    source источник


Ответы (1)


Похоже, вы начали с шаблона «Приложение панели вкладок», поэтому, скорее всего, делегат вашего приложения также является делегатом для вашего UITabBarController. UITabBarControllerDelegate имеет этот метод:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

В этом методе вы должны проверить, является ли viewController вашим первым контроллером навигации, и, если это так, установите для свойства viewControllers контроллеров навигации массив контроллеров дочерних представлений с корневым контроллером представления с индексом 0.

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if (viewController == firstNavController)
        viewController.viewControllers = [NSArray arrayWithObjects:rootViewController, otherViewController, nil];
}
person Mark Adams    schedule 27.11.2010