如何从applicationDidBecomeActive调用viewDidLoad

时间:2014-04-03 22:40:57

标签: ios objective-c appdelegate viewdidload

这个问题还有其他一些答案,但它们对我帮助不大..

所以我需要一个解决方案来运行viewDidLoad中的AppDelegate方法,尤其是applicationDidBecomeActive方法。请帮帮我。

提前致谢!!

2 个答案:

答案 0 :(得分:2)

viewDidLoad始终由系统调用,理想情况下您不应手动调用它。也就是说,调用它的一种方法是访问UIViewController的.view属性。如果尚未调用,则会调用viewDidLoad

如果每次出现视图时都应运行一些代码,则应在viewWillAppearviewDidAppear

中编写代码

答案 1 :(得分:0)

从您的评论中,您似乎想在应用程序变为活动状态时在视图控制器上调用一个函数吗?

你可以向你的视图控制器添加一个观察者,如果该类有一个被调用的init方法在那里做,如果没有在viewDidLoad中执行:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(appBecameActive)
                                             name: UIApplicationDidBecomeActiveNotification
                                           object:nil];

删除对象时需要删除它,所以添加:

- (void) dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

然后每次应用程序变为活动时都会调用appBecameActive方法

- (void) appBecameActive
{
    call your method here
}

P.S。从您的评论+是为类方法。哪个与视图控制器可能不是你想要的。阅读类方法与对象方法,继续iOS教育。