使用ios5和storyboard呈现视图控制器

时间:2012-07-16 11:26:00

标签: objective-c ios ipad storyboard viewcontroller

使用[self presentModalViewController:videoViewController animated:YES];堆叠多个视图吗?

在videoViewController上我正在加载几个UIWebViews,并且每个UIWebView都加载一个视频。我在该视图上有一个按钮,可以更改类别。单击类别按钮时,它会显示一个弹出视图,在该视图中会显示不同类别的多个按钮。当按下其中一个按钮时,我正在执行以下操作以返回到videoViewController:

VideoViewController *videoViewController= [self.storyboard instantiateViewControllerWithIdentifier:@"VideoVC"];
[self presentModalViewController:videoViewController animated:YES];

哪个有效,它会忽略类别弹出视图并返回到视频加载不同视频中的视频。但是,在收到“确实收到内存警告”消息后,我的应用程序几次更改类别就会开始崩溃。

我有一个类别'all'加载所有视频并且没有得到这样的消息,但随后多次更改类别(每个类别的课程加载的视频较少,因为它正在过滤)我得到了警告。 所以我真正的问题是,当我改变类别并调用[self presentModalViewController:videoViewController animated:YES];时,每次更改类别时它是否只是查看视图?因此,例如,如果我更改类别5次,我将有5个videoViewController视图只是坐在彼此的顶部?如果是这样,那么避免这种情况的最佳方法是什么?

我尝试[self presentModalViewController:videoViewController animated:YES];来查看是否会产生影响,但viewViewController不会重新加载,类别弹出窗口视图也不会被忽略。

这适用于iPad应用程序,如果这有所不同。

感谢。

1 个答案:

答案 0 :(得分:0)

每次使用此行:

VideoViewController *videoViewController= [self.storyboard instantiateViewControllerWithIdentifier:@"VideoVC"];

您正在创建VideoViewController的新瞬间和所有UIWebviews。您需要的是使用Objective-C的委托模式。当用户选择弹出视图中的一个按钮时,您需要回调一下VideoViewController的原始瞬间,并传回用户选择的按钮(例如某种类型的数字)并从那里处理更改。 / p>