removeFromParentViewController不会更新UINavigationbar

时间:2013-09-10 14:55:23

标签: objective-c uinavigationcontroller uikit uinavigationbar uinavigation

我想从UINavigationController中删除所有的viewcontrollers。所以我正在使用这段代码。

for (UIViewController* controller in navigationController.viewControllers) {
[controller removeFromParentViewController];
}

之后我创建了一个新的viewController并推送它。

 UIViewController* newVC=[[UIViewController alloc] init]; 
 [navigationController pushViewController:newVC animated:YES];

问题是所有的viewcontrollers都完美地弹出并添加了newVC但是在推送newVC时,导航栏正在获得一个后退按钮和newVC的标题。单击后退按钮时,它会动画到oldVC的导航栏,其标题为oldVC,我已在上面的循环中删除;

2 个答案:

答案 0 :(得分:0)

removeFromParentViewController是一种UIViewController方法,所以它与UINavigationBar

无关

如果是UINavigationControllerpopViewControllerAnimated:方法会为您处理removeFromParentViewController部分以及导航栏。

你可以直接更新viewControllers UINavigationController的整个数组,调用`setViewControllers:animated:

请参阅Replacing rootView in navigationController

答案 1 :(得分:0)

[navigationController setViewControllers:[NSArray arrayWithObject:newVC]];