0
我需要一些想法或起點到以下問題的負載默認狀態:iOS版:的TabBar - 標籤
我有與TabBarView啓動一個應用程序 - 在某些標籤有其連接不同的意見/ ViewControllers由seques。 如果活動的選項卡已更改,我希望(現在)打開的選項卡加載此選項卡的「開始」 - 視圖/視圖控制器,而不是此選項卡上最後激活的視圖/視圖控制器。 我該怎麼做?
我需要一些想法或起點到以下問題的負載默認狀態:iOS版:的TabBar - 標籤
我有與TabBarView啓動一個應用程序 - 在某些標籤有其連接不同的意見/ ViewControllers由seques。 如果活動的選項卡已更改,我希望(現在)打開的選項卡加載此選項卡的「開始」 - 視圖/視圖控制器,而不是此選項卡上最後激活的視圖/視圖控制器。 我該怎麼做?
建議你看使用UITabBarDelegate
方法:tabBarController:didSelectViewController:
與UINavigationController
方法相結合:popToRootViewControllerAnimated:
因此,當用戶選擇一個選項卡,可以確保導航從根控制器開始。
編輯迴應評論:
這不是一個理想的情況,但你可以在應用程序委託引用的UITabBarController。例如: -
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Get reference to Tab Bar Controller as the root view
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
// Set Delegate
tabBarController.delegate = self;
return YES;
}
然後,您可以實現類似UITabBarDelegate方法:
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
// Pop to root if the selected controller is a navigation controller.
if ([viewController isKindOfClass:[UINavigationController class]]) {
[((UINavigationController *)viewController) popToRootViewControllerAnimated:NO];
}
}
我沒有測試過這雖然!
hm,我startet一個tabbarapplication,所以我沒有一個ViewController.m/ViewController.h的TabBarController ...我只有Tab1ViewController和Tab2ViewController的文件 - 我可以添加它嗎? – jacksbox 2012-03-08 18:23:53
我編輯了答案來添加一些額外的代碼。希望能幫助到你。 – 2012-03-08 18:45:03
好吧,我已經明白了:我爲TabBarController創建了一個新的根視圖控制器,並讓它自行委派。現在我可以調用ne RootViewController中的didSelectViewController方法。謝謝你的幫助! – jacksbox 2012-03-08 19:04:30