我在第一个视图控制器上运行了一个计时器,然后我想切换到另一个视图控制器,计时器仍然在后台运行。
如何整体清理第一个视图控制器并启动第二个视图控制器。
SecondViewController *newView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self presentModalViewController:newView animated:NO];
[newView release];
感谢您的帮助!
答案 0 :(得分:1)
这取决于您对视图的处理方式。如果您正在使用UITabBarController或UINavigationController,则在启动第二个视图控制器时,您可能不希望“清理”第一个视图控制器。您希望控制器处理它。因此,如果您正在使用这些控制器中的任何一个,我建议在第一个视图使用UIViewController的viewWillDisappear:方法退出视图时暂停计时器。
答案 1 :(得分:0)
我怀疑问题是你的第一个视图在内存中仍然存活(保留),因为你刚刚将第二个视图呈现为模态视图。第二种观点可以被驳回,因为父母仍然被保留。
您需要做的是将计时器移动到您的app委托或单身类。然后给自己一些方法来随意启动/停止/暂停它。
或者,您可以在第二个视图的 viewDidLoad 调用中暂停或停止计时器,然后在 viewDidUnload 上恢复或重新启动它。
您可以使用第二个视图控制器的 parentViewController 属性来获取父视图。