在UINavigationController中推一个View Controller

我有一个导航控制器的选项卡视图控制器。 在第一个标签项中,我点击一个视图中的button,popup一个视图的animation:YES。

然后当这个观点完成时,我打了另一个button,驳回它。 喜欢:

[self dismissViewControllerAnimated:NO completion:^{ ProfilesViewController *profile = [[ProfilesViewController alloc] init]; [self.navigationController pushViewController:profile animated:YES]; //SHOW YOUR NEW VIEW CONTROLLER HERE! }]; 

但是每次运行这个代码,它都会closures视图,不会推送configuration文件控制器,并显示来自第一个选项卡栏的视图。

如何使用后退箭头将ProfilesViewController推到屏幕上?

如果你正在使用dismissViewControllerAnimated来消除,那就意味着VC以模态方式呈现。 因此,它没有导航控制器(所以self.navigationController是零),因此它不能推动任何东西到导航控制器。

你应该真的添加一个属性到控制器,它是一个委托或完成块,可以用来从另一个控制器(提供它的控制器)推动控制器closures并推动控制器。

第二个select是通过导航控制器,这是一个类似的代码块使用块,但不是很好。

一个糟糕的select是使用parentViewController来find合适的导航控制器,但这很糟糕。