2011-12-26 1 views
-1

Я прочитал несколько интернет-сообщений, которые почти отвечают на мой вопрос, но я не могу собрать эти штуки. У меня есть приложение с двумя вкладками iPhone, с двумя связанными контроллерами представлений, h, m, xibs и др. В tabview1 есть кнопка, по которой я хочу программно перейти на tabview2. Я прочитал дискуссии о настройке контроллера корневого представления для управления этим, но на примерах просто не было достаточно подробностей для меня, чтобы понять это, и, похоже, я предлагаю перейти на навигационное приложение, которое я действительно не хочу этого делать. У кого-нибудь есть терпение, чтобы объяснить это мне?Как переключиться на iOS iPhone tabview2 с помощью кнопки на tabview1

ответ

0

Ну, как я справился с этим, нужно было обработать его AppDelegate (которому принадлежит tabController). Таким образом, в вызывающем, я использовал:

[(AppDelegate_Shared *)[[UIApplication sharedApplication] delegate] popToMainView]; 

, а затем в AppDelegate:

-(void) popToMainView { 
    UITabBarController * myTabBar = self.tabBarController; 
    myTabBar.selectedIndex = 0; //jump to first view. 
    [[myTabBar.viewControllers objectAtIndex:0] popToRootViewControllerAnimated:NO]; 
     // this last line necessary iff you know firstView has a navcontroller and you want to be at the root 
} 
+0

ОГО много Макворта. Ваш selectedIndex заставил меня думать, что может быть еще проще. В логике кнопок tabview1 я просто сделал это один и вуаля, он изменил представления так, как я хотел. Нет делегата, нет специальной функции. –

+0

Вы правы, хотя это означает, что tabView1 знает подробности о своем родителе (что это tabcontroller, индекс которого является основным и т. Д.), Что на самом деле не очень хорошая структура. О, и если бы это помогло, не стесняйтесь отметить ответ! – mackworth