我有一个包含 3 个项目的标签栏。每个指向一个UINavigationController
. 每个下面UINavigationController
都有几个viewControllers
。当按下任何标签栏项目时,我想重置回导航中的第一个控制器。
我已将我的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];
}