在iOS中切换视图而不进行初始化

时间:2013-07-16 12:56:37

标签: ios viewcontroller

我的应用程序中有两个视图。

启动应用程序后,我使用如下按钮切换视图:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:[NSBundle mainBundle]];
UIViewController *view = [storyboard instantiateViewControllerWithIdentifier:@"view_a"];

[self presentViewController:view_a animated:NO completion:nil];

但每当我切换视图时,上面的代码都会初始化视图。 我想保持视图的先前状态。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

instantiateViewControllerWithIdentifier:始终返回UIViewController的新实例。

如果你不想一遍又一遍地创建它,你需要保留对前一个的引用。

答案 1 :(得分:0)

在iPad上,这将以模态方式呈现第二个视图,由视图modalTransitionStyle指示。因此,您可以通过在新的ViewController上调用dismissViewControllerAnimated:completion:来回到原始版本。

在iPhone上,您可以使用故事板中的UINavigationController来推送然后弹出secondViewController。

只要您使用故事板,就可以在那里设置过渡并使用 - performSegueWithIdentifier:sender:从按钮执行。或者就此而言,您可以将segue直接连接到您的按钮,在这种情况下,无需额外代码即可执行转换。