2013-09-19 1 views
2

У меня есть приложение iPhone с TabBar и вкладками. Каждая вкладка загружается с помощью UIViewControllers, то, что я хочу для конкретной вкладки, заключается в изменении UIViewController, связанного с вкладкой. Когда я вызываю PresentViewController, он меняет UIViewController, но также скрывает TabBar, который я не хочу.Как сменить UIViewController на вкладке TabBarController

Может кто-нибудь объяснить, что нужно сделать?

Благодаря

ответ

3

UITabBarController держит коллекцию из его вида контроллеров в собственности метко назвали viewControllers. Вы можете изменить это во время выполнения. Есть побочные эффекты, которые, вероятно, подходят для вашего приложения, but read the docs to be sure.

Метод удобства (и иллюстрация того, как изменить этот непреложный массив) будет выглядеть следующим образом:

- (void)replaceTabBarViewControllerAtIndex:(NSUInteger)index with:(UIViewController *)newVC { 

    NSMutableArray *newVCs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers]; 

    if (index < newVCs.count) { 
     newVCs[index] = newVC; 
     self.tabBarController.viewControllers = [NSArray arrayWithArray:newVCs]; 
    } 
} 

Зов это с новым ВХ вместо представления его.

+0

Спасибо, работал как шарм только небольшой мод NSMutableArray * newVCs = [NSMutableArray arrayWithArray: self.tabBarController.viewControllers] –

+0

Получил это ... отредактировал. Благодарю. Пожалуйста, отметьте как принято. – danh

+0

Просто еще раз спасибо! –