我有一个带导航控制器的标签视图控制器。在第一个标签项中,我单击视图中的一个按钮,弹出一个带有动画的视图:YES。
然后当该视图完成后,我点击了另一个关闭它的按钮。像:
[self dismissViewControllerAnimated:NO completion:^{
ProfilesViewController *profile = [[ProfilesViewController alloc] init];
[self.navigationController pushViewController:profile animated:YES];
//SHOW YOUR NEW VIEW CONTROLLER HERE!
}];
但每次运行此代码时,它都会关闭视图,不会推送配置文件控制器,并显示第一个标签栏项目的视图。
如何使用后退箭头将ProfilesViewController推送到屏幕?
答案 0 :(得分:2)
如果您使用dismissViewControllerAnimated
来解雇,则意味着VC以模态方式呈现。因此,它没有导航控制器(因此self.navigationController
为零),因此无法将任何东西推入导航控制器。
您应该向控制器添加一个属性,该控制器是委托或完成块,可用于将控制器从另一个控制器(显示它的控制器)推出以解除并推送控制器。
第二种选择是通过导航控制器,使用一个块的代码数量相似但不太好。
一个糟糕的选择是使用parentViewController
来找到合适的导航控制器,但这很糟糕。