我有一個包含3個項目的選項卡欄。每個指向UINavigationController
。每個UINavigationController
下面有幾個viewControllers
。我想在按下任何標籤欄項目時重置回導航中的第一個控制器。選擇tabbaritem時重置爲第一個視圖控制器
我指定我TabBarController
實施作爲delegate
self.delegate = self
和我的下面(在我的TabBarController
實施運行方法效果返回UINavigationControllers
。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"%@", viewController);
}
隨着日誌文件顯示如
UINavigationController: 0x8a31a90>2012-12-31 02:16:40.035 Demo[6142:c07]
當我嘗試popToRootViewController
或者這個方法內的popViewController
它似乎不起作用。我沒有得到任何錯誤,但我的viewControllers
不重置。看來我在這裏犯了一個非常基本的錯誤,但我不知道是什麼。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"%@", viewController);
[self.navigationController popToRootViewControllerAnimated:YES];
[[self navigationController] popViewControllerAnimated:YES];
}
@damon說什麼,除非你必須首先投射viewController:[(UINavigationController *)viewController popToRootViewControllerAnimated:YES]; – Aky
非常好,謝謝Aky和達蒙。是[(UINavigationController *)viewController popToRootViewControllerAnimated:YES];效果很好。 – user1938847
很高興幫助。一定要將答案標記爲正確。 – damon