我想从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,我已在上面的循环中删除;
答案 0 :(得分:0)
removeFromParentViewController
是一种UIViewController
方法,所以它与UINavigationBar
如果是UINavigationController
,popViewControllerAnimated:
方法会为您处理removeFromParentViewController
部分以及导航栏。
你可以直接更新viewControllers
UINavigationController
的整个数组,调用`setViewControllers:animated:
答案 1 :(得分:0)
[navigationController setViewControllers:[NSArray arrayWithObject:newVC]];