如何从uinavigationcontroller堆栈中删除特定的视图控制器?

S.P*_*.P. 30 navigation iphone objective-c uinavigationcontroller

我有一个uinavigationcontroller.登录后我想从UInavigationcontroller堆栈中删除RegisterViewController,LoginViewController等视图控制器.

我的意思是我必须从堆栈中删除特定的视图控制器?怎么可能.?

我查了这篇文章

http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller's-root-view-controller/

所以我们可以把它变成一个数组

NSArray *allviewcontrollers= [(UINavigationController *)navigationController viewControllers];
Run Code Online (Sandbox Code Playgroud)

但是如何做进一步的过程..这个问题正在狩猎我很久..请回答我..谢谢你

Cos*_*que 85

NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray: navigationController.viewControllers];
[allViewControllers removeObjectIdenticalTo: removedViewController];
navigationController.viewControllers = allViewControllers;
Run Code Online (Sandbox Code Playgroud)

  • 这是有效的,但建议在推动或弹出视图控制器的动画时避免这样做.您将获得如下日志:"在意外状态下完成导航转换.导航栏子视图树可能已损坏." (4认同)