popToRootViewControllerAnimated工具栏未正确更新

时间:2009-11-12 18:11:28

标签: uinavigationcontroller

我有一个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

这是正确的视图,但错误的工具栏标题和后退按钮。

有人有什么想法吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我通过断开导航控制器与IB的连接来实现这一点,只是以编程方式创建它们。