我的应用程序中有两个视图。
启动应用程序后,我使用如下按钮切换视图:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:[NSBundle mainBundle]];
UIViewController *view = [storyboard instantiateViewControllerWithIdentifier:@"view_a"];
[self presentViewController:view_a animated:NO completion:nil];
但每当我切换视图时,上面的代码都会初始化视图。 我想保持视图的先前状态。
我该如何解决这个问题?
答案 0 :(得分:0)
instantiateViewControllerWithIdentifier:
始终返回UIViewController
的新实例。
如果你不想一遍又一遍地创建它,你需要保留对前一个的引用。
答案 1 :(得分:0)
在iPad上,这将以模态方式呈现第二个视图,由视图modalTransitionStyle指示。因此,您可以通过在新的ViewController上调用dismissViewControllerAnimated:completion:
来回到原始版本。
在iPhone上,您可以使用故事板中的UINavigationController来推送然后弹出secondViewController。
只要您使用故事板,就可以在那里设置过渡并使用 - performSegueWithIdentifier:sender:
从按钮执行。或者就此而言,您可以将segue直接连接到您的按钮,在这种情况下,无需额外代码即可执行转换。