2009-05-25 114 views
0

我的應用程序的主要功能由UITabBarController控制。不過,我需要加載一個具有UINavigationController的View。當我回到我的UITabBarController使用在UITabBarController和UINavigationController之間切換

 self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0]; 

我的UITabBarController不再響應點擊。看來這個視圖沒有重點。

但是,如果我用這個代碼,切換回的UITabBarController:

[window addSubview:tabBarController.view] 

我的按鈕會作出迴應。我覺得像「addSubview」效率較低,因爲我從不從窗口中刪除視圖,因此它必須將視圖的第二個副本添加到堆棧。我對麼?有沒有辦法使用第一種方法,並讓我的按鈕響應?請告訴我。

回答

1

這聽起來像你可能錯誤地介紹了導航控制器。你絕對不應該直接添加視圖到窗口。你想用

[myTabBarController presentModalViewController:myNavController animated:YES]; 

呈現它,當你與導航控制器做你

[myTabBarController dismissModalViewControllerAnimated:YES]; 

關閉它,一切都應該工作。

順便說一句,這是在UIViewController和「視圖控制器編程指南iPhone OS」文檔的文檔中記錄的。

+0

n8gray ...你剛救了我的命。完善。我只是打開導航控制器錯誤。對此,我真的非常感激。您可能想要編輯帖子以刪除該行中的短劃線:[myTabBarController - dismissModalViewControllerAnimated:YES]; – Dave 2009-05-25 18:06:53

+0

糟糕!是的,你當然是對的。編輯。樂於幫助! – n8gray 2009-05-25 18:16:47

+0

Mayer你可以幫助我...每次我嘗試'-dismissModalViewControllerAnimated:',我得到這個錯誤:'UIViewControllerHierarchyInconsistency',原因:'presentViewController爲控制器本身是關閉: 2012-07-06 09:12:33