【发布时间】:2013-11-12 16:12:27
【问题描述】:
假设我有一个应用程序,它基本上存在一个带有视图的 tabbarcontroller。其中一个视图有一个按钮,它显示了一个模态视图控制器。这个 viewcontroller 的目的是输入一些数据,比如名字,当按下 start 时它会开始录制,因此它还保留对时间的引用并显示录制的总时间。
(点击开始按钮后按钮变为停止按钮)
在录制过程中,用户可以单击关闭按钮,该按钮将关闭视图控制器(保存名称和录制时间等变量),应用程序将返回其带有视图的 tabbarcontroller。当用户在录制时再次按下按钮(显示模态视图控制器)时,它必须向视图控制器显示之前输入的数据(名称、录制总时间)。
所以这些数据必须在以下代码运行后保持活动状态:
- (IBAction)close:(id)sender {
[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
}
上面的代码会关闭视图控制器,但也会破坏视图控制器中的变量。关闭视图控制器后保留输入的变量的最佳方法是什么?
tabbarcontroller 的视图是否应该对这些数据负责?或者我应该保留对我的模态视图控制器的引用并使其在后台保持活动状态?我将如何在代码中做到这一点?
最后,当用户通过单击模态视图控制器中的停止按钮并按下关闭按钮来停止录制时,当然应该销毁此视图以保留内存。
【问题讨论】:
-
在 .h 文件中简单声明 ViewController 的对象
-
所以基本上你是说,创建一个模态视图控制器的实例,并在关闭它时将该视图控制器设置为 nil(当然不记录)
-
在下面查看我的答案,我在示例项目中对其进行了测试。
标签: ios objective-c uiviewcontroller uistoryboard uistoryboardsegue