1

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

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

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

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

我有一个“全部”类别,它会在所有视频中加载,但没有收到此类消息,但随后多次更改类别(每个类别在过滤时当然加载较少的视频)我收到警告。所以我真正的问题是,当我更改类别并调用[self presentModalViewController:videoViewController animated:YES];时,每次我更改类别时都会显示视图吗?因此,例如,如果我更改类别 5 次,我是否会有 5 个 videoViewController 视图彼此重叠?如果是这样,避免这种情况的最佳方法是什么?

相反,我试图[self presentModalViewController:videoViewController animated:YES];看看这是否会有所作为,但 viewViewController 不会重新加载,并且类别弹出视图不会关闭。

这适用于 iPad 应用程序,如果有影响的话。

谢谢。

4

1 回答 1

0

每次使用此行时:

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

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

于 2012-07-16T11:45:22.363 回答