2014-04-03 68 views
1
调用viewDidLoad中

有这个问题,其他一些答案,但他们并没有帮助我这么多..如何从applicationDidBecomeActive

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

在此先感谢!

+4

您不要自己调用viewDidLoad,OS会调用它。您创建/加载您的UIViewController对象,因此viewDidLoad将被操作系统调用。不要问这个问题,告诉我们你想要做什么,而不是假设调用viewDidLoad是解决方案(它不是解决方案,因为我说你不称它为解决方案)。 – Gruntcakes

+0

好的。在我的普通ViewController中,如果应用程序变为活动状态,应该自动调用这个方法。我试图用+(void)作为公共方法调用该方法,但这对我来说是不可能的,因为该方法应该做的事不能在公共方法中运行,所以我无法调用该方法applicationDidBecomeActive,但viewDidLoad通过[self method];这是我的感觉,很抱歉,我对ios编程非常陌生,但也许你可以帮助我。非常感谢! – Criska

回答

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教育。

+0

非常感谢你!这是我正在寻找的解决方案! :)也感谢教育tipps。 – Criska

2

viewDidLoad总是被系统调用,而且你最好不要手动调用它。也就是说,调用它的一种方式是访问UIViewController的.view属性。如果它尚未被调用,则确实会调用viewDidLoad

如果有一些一段代码应该运行每次出现一个视图,你应该写你的代码viewWillAppearviewDidAppear

+0

好的。如果它不可能调用viewDidLoad,你知道我可以如何调用一个私人方法,这是从我的ViewController类从AppDelegate类...如果我使方法公共方法与+(void)方法中的函数不会运行..非常感谢! – Criska

相关问题