我有一个带有导航控制器的选项卡视图控制器。在第一个标签项中,我单击视图中的按钮,然后弹出带有动画的视图:是。

然后,当该视图完成时,我按下另一个按钮将其关闭。喜欢:

                   [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/

10-13 03:34