2013-02-12 3 views
0

Мне интересно знать концептуально, как сбросить вкладки на основе действий на «главной вкладке», приложение - это приложение для записи, в котором можно работать несколько проектов за раз.IOS Tab Bar Controller: перезагрузка Tab B на основе действия в Tab A

На первой вкладке отобразится представление таблицы, показывающее все доступные в настоящее время проекты, когда вы выбираете проект, я бы хотел, чтобы все остальные вкладки «перезагрузились» на их домашний экран (некоторые из них будут иметь навигацию, где вы можете просверлить)

Любые мысли оценили, thainks.

ответ

3

Из контроллера с таблицей (на «главной вкладке») вы можете получить доступ ко всем контроллерам представлений контроллера панели управления с помощью self.tabBarController.viewControllers. Вы можете пройти через этот массив и проверить, является ли объект навигационным контроллером - если это так, вызовите popToRootViewControllerAnimated: чтобы вернуться к исходному контроллеру содержимого.

+0

Спасибо rdelmar. вы попали в гвоздь прямо на вкладке :) –

2

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

- (void)resetAllTabs{ 
for (id controller in self.tabBarController.viewControllers) { 

    if ([controller isMemberOfClass:[UINavigationController class]]) { 
     [controller popToRootViewControllerAnimated:NO]; 
    } 
}