-1

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

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

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

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

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

我怎么解决这个问题?

4

2 回答 2

0

instantiateViewControllerWithIdentifier:总是返回一个新的实例UIViewController

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

于 2013-07-16T13:03:10.320 回答
0

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

在 iPhone 上,您可以在情节提要中使用 UINavigationController 来推送然后弹出 secondViewController。

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

于 2013-07-16T13:15:50.780 回答