2012-11-23 70 views
0

我正在使用一個tabbar,每個tab都有一個導航控制器,而這又有一堆視圖。每個視圖都有自己的視圖控制器,但現在這並不重要。觀看導航控制器中的主要視圖嗎?

讓我們有一個標籤1,導航控制器1的視圖A,B,C。 但是,應用程序的性質決定了視圖B是主視圖。

所以我想要的是,默認情況下(在應用程序第一次或重新啓動後),當我點擊標籤1時,我會看到B視圖和後退按鈕到一個視圖。

我該如何做到這一點?

+0

爲什麼我發現自己無法理解你的問題?該死的!!! – brianLikeApple

+0

爲了正確理解這個問題,人們必須牢固地理解視圖和控制器之間的區別,理解視圖控制器有一個內置的主視圖,理解UITabbarController - > UINavigationController - >任何ViewControllers堆棧的典型選項卡應用層次結構。並瞭解這種應用程序的典型UI工作流程。 我暗示了所有這些問題。 –

回答

0

您可以爲標籤欄控制器設置委託並實施tabBarController:didSelectViewController:來檢測有人點擊標籤。如果您檢測到A即將被選中,而您希望顯示B,您可以告訴A的控制器使用其導航控制器推動B的控制器。

0

嘗試初始化,推動視圖B(無動畫)到視圖A.在viewDidLoad中導航堆棧

0

你可以使用的UINavigationController的setViewControllers:animated:。 根據您的確切需求,您可以在您的應用代理applicationWillEnterForeground:applicationDidBecomeActive:方法中設置此值。

0

我記得有一個蘋果示例應用程序完全做到這一點。總的想法是,保存最後一個可見視圖控制器(或只是硬編碼一個你想要的),然後使用的東西,像這樣把它推到可見狀態:

[myNavigationController pushViewController:viewControllerToBeVisible animate:NO];

你想要展現應用tabBarController:didSelectViewController:,並根據哪個viewController被選中來處理不同的情況。