我有一个UITabBarController,其标签是UINavigationController。我已经通过以下方式初始化了每个navigationController:
iPhoneApp *appDelegate = (iPhoneApp *)[[UIApplication sharedApplication] delegate];
[appDelegate.navigationController2 initWithRootViewController:countryController];
然后我使用:
向下钻取navigationController[self.navigationController pushViewController:myViewController animated:YES];
当用户点击tabBar标签时,我想弹出我的navigationController的根目录。
[delegate.navigationController2 popToRootViewControllerAnimated:NO];
当我只推动ViewController一个级别时,这看起来效果很好,但是当我在navigationController中向下钻取多个级别时失败了。会发生什么是它弹出到root但不包含我的Root的后退按钮或标题:
self.navigationItem.title = @"My title";
self.navigationItem.hidesBackButton = YES;
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleDone
target:self
action:@selector(handleBack:)];
如果我没有poptoroot并且只使用navigationControlls后退按钮,一切正常。
我在poptoroot之前和之后记录了我的viewControllers
之前: MainCountryController:0x3d53650, IndividualCountryMfgViewController:0x3d67d50, IndividualCountryProductViewController:0x3d60870
后: MainCountryController:0x3d53650
这是正确的视图,但错误的工具栏标题和后退按钮。
有人有什么想法吗?谢谢你的帮助。
答案 0 :(得分:1)
我通过断开导航控制器与IB的连接来实现这一点,只是以编程方式创建它们。