iOS: Tabbar - загрузить состояние вкладки по умолчанию - PullRequest
0 голосов
/ 08 марта 2012

Мне нужна идея или отправная точка для следующего вопроса:

У меня есть приложение, которое запускается с TabBarView - в некоторых вкладках есть разные Views / ViewControllers, которые связаны с помощью seques.Если активная вкладка изменяется, я хочу, чтобы (теперь) открытая вкладка загружала «Start» -View / ViewController этой вкладки, а не View / ViewController, который был последним активным на этой вкладке.Как я могу это сделать?

1 Ответ

1 голос
/ 08 марта 2012

Я предлагаю вам взглянуть на метод UITabBarDelegate: tabBarController:didSelectViewController:

в сочетании с методом UINavigationController: popToRootViewControllerAnimated:

Поэтому, когда пользователь выбирает вкладку, вы можете убедиться, что навигация начинается с корневого контроллера.

Редактировать в ответ на комментарий:

Это не идеальная ситуация, но вы можете ссылаться на UITabBarController в делегате приложения. E.g.:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Get reference to Tab Bar Controller as the root view
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

    // Set Delegate
    tabBarController.delegate = self;

    return YES;
}

Затем вы можете реализовать метод UITabBarDelegate, подобный следующему:

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    // Pop to root if the selected controller is a navigation controller.
    if ([viewController isKindOfClass:[UINavigationController class]]) {
        [((UINavigationController *)viewController) popToRootViewControllerAnimated:NO];
    }
}

Я еще не проверял это!

...