我的观点
在代码的开头,我使用了一个小小的检查,看看用户以前是否见过intro视图,如果没有,我使用下面的代码从ViewController到IntroViewController
IntroViewController *introViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"IntroViewController"];
[self presentViewController:introViewController animated:NO completion:nil];一切都进行得很好,介绍进行得很好,然后用下面的代码返回到ViewController,UINavigationBar和UIToolbar消失了,但是视图的内容仍然可见:
ViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
[self presentViewController:homeViewController animated:NO completion:nil];我觉得我错过了一些很小的东西,只是找不到。有谁能给我一些建议吗?
发布于 2014-01-08 22:30:04
这是因为您将视图控制器表示为"it是“。我打赌你没有UINavigationController来控制你的HomeViewController在故事板上,对吗?当然,IntroViewController中有一个UINavigationController (或者是UINavigationController控制的),对吗?
解决方案是添加UINavigationController来管理您的HomeViewController。那样的话,一切都会好起来的。
但是不要忘记,从那一刻起,您的应用程序中将有两个不同的UINavigationController实例。
当控制器出现时,其视图将被添加到视图层次结构中,而不是添加到导航堆栈中。
来自-[UIViewController presentViewController:animated:completion:]文档:
此方法将presentedViewController属性设置为指定的视图控制器,调整视图控制器的视图大小,然后将视图添加到视图层次结构中。
如需参考,请阅读这。
发布于 2014-01-09 00:30:30
当您想回到呈现您的控制器时,您不会显示该控制器的另一个实例,这就是您正在做的事情。你把自己解雇了,
[self dismissViewControllerAnimated:YES completion:nil];发布于 2014-01-09 16:25:33
现在视图控制器方法替换了整个视图,因此如果您有任何导航条或工具栏..。它将不会被显示。
如果你想回到以前的视图..。你应该使用
[self dismissViewControllerAnimated:YES completion:nil];如果出于任何原因..。您需要创建该视图的一个新实例。您应该创建一个新的导航控制器,将目标视图控制器设置为controller控制器.并给出导航控制器。这将使navigationBar再次出现。
升HF
https://stackoverflow.com/questions/21007792
复制相似问题