2010-07-31 86 views
1

随着iOS4中的多任务处理,主页按钮将应用程序置于后台,当它返回到前台时,我希望View Controller'刷新'(并因此调用viewWillAppear)。我把这个应用程序的委托想这应该工作,但没有任何反应iOS4中的应用程序委托和视图控制器

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
} 


- (void)applicationWillEnterForeground:(UIApplication *)application { 
    [viewController.view reloadInputViews]; 
} 

谁能帮我强迫视图控制器“执行” /刷新时,它已经显示?

+0

请将代码发布到实例化viewController并发布reloadInputViewsCode。请记住,只有当您的应用处于暂停状态时,才会调用willEnterForeground。出于内存或其他原因,CPU可能随时关闭大多数暂停的应用程序。在这种情况下,将调用applicationDidFinishLaunching。 – RunLoop 2010-07-31 04:35:49

+0

嗨Run Loop,请注意您的请求并添加上面。该应用程序读取粘贴板并更新视图中的数据。用户可能会离开应用程序并将新数据复制到粘贴板,当他重新进入应用程序时,需要刷新视图。这是在viewWillAppear中执行,并在iOS3中正常工作,现在在iOS4中调用applicationWillEnterForeground。但是,我如何告诉View Controller刷新并因此viewWillAppear执行? – munchine 2010-07-31 06:32:39

+0

没有看到reloadInputViews的代码很难,但看到我的答案在下面。 – RunLoop 2010-07-31 07:02:48

回答

1

您可以显式调用viewWillAppear,例如,

- (void)applicationWillEnterForeground:(UIApplication *)application { 
    [viewController.view reloadInputViews]; 

    [viewController viewWillAppear]; 
} 
+0

太酷了,我甚至不知道你能做到这一点。测试它,它的工作(在simlulator,有其他问题在设备上,但我不认为这是相关的)。对于其他读者,我将使用这里建议的工作http://stackoverflow.com/questions/3187642/ios4-removing-app-from-memory-via-code。但我要用Run Loop。 – munchine 2010-07-31 07:24:17

相关问题