1、使用场景:之前使用storyboard(sb)创建UINavigationController时,都会都出一个没有用的navigationcontroller页面。当页面很多时,这些多余的navigationcontroller就会遮挡一些界面,sb变得很难看,也不好维护。
2、可以将之前的navigationcontroller,或者使用Editor-->Embed in-->navigation controller去掉。按照下面的步骤进行就可以了。
1)首先连接连个页面,不要先删掉中间的navigation controller界面,因为删除界面后,之前viewcontroller上的navigation bar和navigation item就会不见。
2)segue采用之前的,(可以是show e.g push)。如果之前有命令,将命名加上。
3)删除中间的navigation controller界面
按照上面的操作就可以去掉中间的navigation controller了。
3、有时可能在代码中采用segue传递数据,如果使用了
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
方法,获取viewController的时候获取的是上层的navigation controller
Mycontroller *detailView = (Mycontroller *)[[segue destinationViewController ] topViewController];
那么这里需要改成直接获取viewcontroller
EVTicketDetailController *detailView = [segue destinationViewController ];
经过上面的步骤,就可以将多余的navigation controller去掉了,并且不会影响程序的正常功能。