DGu*_*und 1 iphone cocoa-touch objective-c ios
在导航控制器中的一个视图中,我有一个- (void) loadAlert获取网页内容,解析网页并将相关内容放在网页上的方法UITextView.方法调用位于viewDidAppear:我的视图控制器的部分中.它在视图首次加载时以及导航到视图时完全显示时工作正常.
我还希望在应用程序从后台返回时发生此数据加载.正如许多Stackoverflow帖子和其他来源所示,我将我的方法调用applicationDidBecomeActive::
- (void)applicationDidBecomeActive:(UIApplication *)application
{
MainViewController *mainView = [[mainViewController alloc] init];
[mainView loadAlert];
}
Run Code Online (Sandbox Code Playgroud)
但是,当应用程序从后台返回时,视图中不会发生任何事情.我希望UITextView清楚,一个UIActivityIndicatorView旋转,同时从互联网上获取内容,并将新内容加载到UITextView.
我知道正在调用该方法,但视图中没有发生任何事情.我的感觉是,在调用此方法时,视图尚未加载.在哪里可以调用我的方法,以便当应用程序从后台返回时,如果此特定视图是导航控制器中显示的当前视图,它实际上是否会刷新UI?
您可以使用UIApplicationWillEnterForegroundNotification或者UIApplicationDidBecomeActiveNotification,在应用程序的任何地方收听这些通知非常有效,您需要将控制器注册到其中一个通知,并使用您的方法显示您想要的任何内容.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(showYourView)
name:UIApplicationWillEnterForegroundNotification object:nil];
-(void) showYouView(){
// do your stuff
}
Run Code Online (Sandbox Code Playgroud)
注意
最好的方法是使用UIApplicationWillEnterForegroundNotification,因为它只会在用户从后台到前台运行时运行,另一方面UIApplicationDidBecomeActiveNotification在每次应用程序变为活动时运行
| 归档时间: |
|
| 查看次数: |
3051 次 |
| 最近记录: |