刷新应用程序进入前台的视图控制器内容

pmc*_*255 3 iphone nsnotifications uiviewcontroller viewdidload multitasking

我有一个带有标签栏的应用程序,该标签栏包含一些包含用户生成内容的标签.当每个视图控制器加载时,viewDidLoad方法向服务器发出HTTP请求以获取数据,然后相应地填充其视图.但是,一旦加载了所有数据,视图将保持不变(除非卸载并重新加载视图控制器).

许多其他具有用户生成内容的应用程序具有类似的行为,除非每个视图将重新加载,如果应用程序进入后台然后再次返回到前台.也就是说,当用户在应用程序处于活动状态时在各个选项卡之间切换时,内容将不会自动刷新.如果用户"退出"应用程序然后稍后返回,则将重新加载视图.

是否有设计应用程序的标准做法以这种方式行事?具体来说,我想知道是否有UIKit细节,我可以利用它来刷新我对应用程序"重启"的看法.

否则,我想一个简单的方法是让每个视图控制器在viewDidLoad中注册通知,并监听应用程序进入前台.然后,控制器可以通过重新加载其数据来响应每个通知.

jer*_*jer 5

在每个视图控制器中,您希望订阅UIApplicationDidBecomeActiveNotification通知,并实现在收到通知时调用的方法.这个方法会重新加载,但是你需要重新加载的数据真的超出了我们在这里可以回答的范围.这就是我的方式,以及我的建议.

  • 如何确定视图是否可见?我认为这实际上是必要的,因为始终响应UIApplicationDidBecomeActiveNotification将为可能无法显示的视图重新加载数据带来不必要的成本.但是,viewDidAppear:实际上并没有完全实现我们在这里需要的东西,因为当应用程序变为活动状态时它似乎没有触发.如果视图在应用程序_already_活动时出现,则似乎只会触发,但如果应用程序从非活动状态变为活动状态时视图已经可见,则不会触发. (2认同)