我有一个带有导航控制器的选项卡视图控制器。在第一个标签项中,我单击视图中的按钮,然后弹出带有动画的视图:是。
然后,当该视图完成时,我按下另一个按钮将其关闭。喜欢:
[self dismissViewControllerAnimated:NO completion:^{
ProfilesViewController *profile = [[ProfilesViewController alloc] init];
[self.navigationController pushViewController:profile animated:YES];
//SHOW YOUR NEW VIEW CONTROLLER HERE!
}];
但是,每次运行此代码时,它都会关闭视图,不推动配置文件控制器,并从第一个选项卡栏项显示视图。
如何使用向后箭头将ProfilesViewController推到屏幕上?
最佳答案
如果您使用dismissViewControllerAnimated
关闭,则表示以模态显示VC。因此,它没有导航控制器(因此self.navigationController
为nil),因此无法将任何内容推入导航控制器。
您确实应该在控制器上添加一个属性,它是一个委托或完成块,可用于从另一个控制器(表示它的控制器)中推入控制器,以解除并推入该控制器。
第二种选择是传递导航控制器,这与使用块的代码量相似,但效果却不佳。
一个糟糕的选择是使用parentViewController
查找合适的导航控制器,但这很麻烦,原因很多。
关于ios - 在UINavigationController中推送 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26273125/