我刚刚开始使用初始viewcontroller
的iphone应用程序,该应用程序嵌入navigationController
并且pushSegue
到tabBarController
。
每当我运行模拟器时,调用viewController
之前调用的初始applicationDidBecomeActive
的viewDidAppear。
在任何applicationDidBecomeActive
加载之前,是否要在appdelegate
中输入viewController
?
答案 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:
。