我有一個UITabBarController
五個視圖,其中一個視圖中有一個UINavigationController
。UITabBarController中的UINavigationController - 轉到標籤選擇頂部
我如何確保在選擇包含UINavigationController
的選項卡時它會轉到UINavigationController
的頂視圖?
我有一個UITabBarController
五個視圖,其中一個視圖中有一個UINavigationController
。UITabBarController中的UINavigationController - 轉到標籤選擇頂部
我如何確保在選擇包含UINavigationController
的選項卡時它會轉到UINavigationController
的頂視圖?
有沒有UITabViewController
類。我假設你的意思是UITabBarController
。
設置您的UITabBarController
的代表。給委託人一個對導航控制器的參考。比如,也許你會使用你的應用程序委託作爲標籤欄控制器的委託:
@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>
@property (nonatomic, weak) IBOutlet UINavigationController *theNavigationController;
確保您掛鉤的財產,無論是在你的筆尖或代碼。 然後,在委託,重寫tabBarController:didSelectViewController:
方法:
@implementation AppDelegate
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (viewController == self.theNavigationController) {
[self.theNavigationController popToRootViewControllerAnimated:NO];
}
}
設置UITabBarViewContoller
的委託,並實現其tabBarController:didSelectViewController:
,使其調用您的UINavigationController
的popToRootViewControllerAnimated:
當選擇UINavigationController
。
代替與基準進行比較,爲什麼不利用'[的viewController isKindOfClass:[UINavigationController的類]]檢查選擇的viewController的類型',然後類型轉換並對結果執行'popToRootviewController'? – Till 2012-02-20 21:53:46
哎呦,解決了我的頭銜。 – Baub 2012-02-20 21:56:18
@我給出了一個適合這個問題的答案。它有優點和缺點。 – 2012-02-20 22:05:29