2

我在我的第一个视图控制器上运行了一个计时器,然后我想切换到另一个视图控制器并且计时器仍在后台运行。

我怎样才能完全清理第一个视图控制器并启动第二个视图控制器。

SecondViewController *newView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self presentModalViewController:newView animated:NO];
[newView release];

谢谢你的帮助!

4

2 回答 2

1

好吧,这取决于您对视图的处理方式。如果您使用的是UITabBarControllerUINavigationController,您可能不想在启动第二个视图控制器时“清理”第一个视图控制器。你希望控制器来处理它。因此,如果您使用这些控制器中的任何一个,我建议在第一个视图消失时使用 UIViewController 的viewWillDisappear:方法暂停计时器。

于 2011-08-15T23:02:29.163 回答
0

我怀疑问题是您的第一个视图在内存中仍然存在(保留),因为您刚刚将第二个视图呈现为模态视图。第二个视图可以被忽略,因为父级仍然保留。

您需要做的可能是将计时器移动到您的应用程序委托或单例类。然后给自己一些方法来随意启动/停止/暂停它。

或者,您可以简单地在第二个视图的viewDidLoad调用上暂停或停止计时器,然后在viewDidUnload上恢复或重新启动它。

您可以使用第二个视图控制器的parentViewController属性获取父视图。

于 2011-08-15T22:59:50.883 回答