0
  1. 首先我将 TabBarController 直接安装为窗口的根视图控制器,并在 viewControllers 中有一个 NavigationController。
  2. 当应用程序运行时,我将一些新的视图控制器推送到导航堆栈上
  3. 比我点击导航tabbaritem,navigationController poptoRootViewController

如何使第 3 步事件崩溃或阻止它弹出到根目录?

我停止自动弹出到根视图控制器的解决方案:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
UITabBarController *tbc = [[UITabBarController alloc]init];

tbc.viewControllers = [NSArray arrayWithObjects:rvc,nil];

tbc.delegate = self;}
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{

if([tabBarController selectedViewController] == viewController)
    return NO;
return YES;}

如果您有其他解决方案,欢迎写下来。

4

2 回答 2

0

在标签栏应用程序中尝试此代码

[self.tabBarController.navigationController popToRootViewControllerAnimated:YES];
于 2013-09-24T06:36:25.917 回答
0

您在新的 viewController 中实现 didSelectViewController 方法(推送到新的 viewController)

导入 UITabBarControllerDelegate,

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tabBarController.delegate = self;
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    [self.tabBarController.navigationController popToRootViewControllerAnimated:YES];
}
于 2013-09-24T07:04:19.290 回答