在applicationDidBecomeActive之前调用viewDidAppear

时间:2014-12-05 04:38:46

标签: ios objective-c iphone

我刚刚开始使用初始viewcontroller的iphone应用程序,该应用程序嵌入navigationController并且pushSeguetabBarController

每当我运行模拟器时,调用viewController之前调用的初始applicationDidBecomeActive的viewDidAppear。

在任何applicationDidBecomeActive加载之前,是否要在appdelegate中输入viewController

3 个答案:

答案 0 :(得分:2)

在iOS8中,viewDidLoad用于在applicationDidBecomeActive之前运行。但是,在iOS9中,我看到使用相同的代码,applicationDidBecomeActive在viewDidLoad之前运行。奇怪。

答案 1 :(得分:1)

是的,没关系,我认为你只是有点混乱。应用程序如何在加载视图之前变为活动状态。

首次启动时,应用程序将按顺序调用方法 -

来自App Delegate -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

来自View Controller -

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

- (void)viewDidLoad

- (void)viewWillAppear:(BOOL)animated

- (void)viewDidAppear:(BOOL)animated

来自App Delegate -

- (void)applicationDidBecomeActive:(UIApplication *)application

答案 2 :(得分:0)

applicationDidBecomeActive是位于Application Delegate中的委托,并且不保证在任何其他UIViewController委托之前将其调用(viewWillAppear,viewDidLoad等)。如果要在加载任何其他视图控制器方法之前创建任何逻辑,则可能需要使用application:didFinishLaunchingWithOptions: