我有一个应有的应用程序。
但是,我在rootViewController的viewDidLoad方法的第一行放置了一个断点,而在委托的didFinishLaunchingWithOptions的第一行将了另一个断点,
对于我来说,令人惊讶的是,该应用程序输入了viewDidLoad方法,然后转到didFinishLaunchingWithOptions,然后再执行一次viewDidLoad方法。
到底是怎么回事?我认为这种行为是完全错误的。
先感谢您!
#
已编辑
我的iPad的代表didFinishLaunchingWithOptions方法如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
UtilXML *utilXML = [[UtilXML alloc] init];
[utilXML startXMLCommunication];
int quantidadeDeComicsBaixadas = [utilXML quantidadaDeComicsBaixadas];
main_iPad *mainiPad = [[main_iPad alloc] init];
mainiPad.quantidadeDeComicsBaixadas = quantidadeDeComicsBaixadas;
mainiPad.navigationItem.title = @"TitleFirstScreen";
UIBarButtonItem *botaoSobre = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:mainiPad action:@selector(goToAboutView)];
mainiPad.navigationItem.rightBarButtonItem = botaoSobre;
navController = [[UINavigationController alloc] initWithRootViewController:mainiPad];
navController.navigationBar.tintColor = [UIColor orangeColor];
navController.navigationBar.translucent = YES;
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
这是我的iPhone的委托didFinishLaunchingWithOptions方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
UtilXML *utilXML = [[UtilXML alloc] init];
[utilXML startXMLCommunication];
int quantidadeDeComicsBaixadas = [utilXML quantidadaDeComicsBaixadas];
main_iPhone *mainiPhone = [[main_iPhone alloc] init];
mainiPhone.quantidadeDeComicsBaixadas = quantidadeDeComicsBaixadas;
mainiPhone.navigationItem.title = @"TitleFirstScreen";
UIBarButtonItem *botaoSobre = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:mainiPhone action:@selector(goToAboutView)];
mainiPhone.navigationItem.rightBarButtonItem = botaoSobre;
navController = [[UINavigationController alloc] initWithRootViewController:mainiPhone];
navController.navigationBar.tintColor = [UIColor orangeColor];
navController.navigationBar.translucent = YES;
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
在两个设备中都会发生这种奇怪的行为。
最佳答案
application:didFinishLaunchingWithOptions:
的文档
您应该使用此方法初始化您的应用程序并准备
运行。在您的应用程序启动后被调用
并且其主要笔尖文件已被加载。当时这种方法是
调用,您的应用程序处于非 Activity 状态。之后的某个时候
此方法返回后,将调用后续的委托方法来移动
您的应用程序处于 Activity (前景)状态或后台
州。
因此,一旦调用view
属性或方法,便会为视图控制器延迟加载视图。发生这种情况时,将调用viewDidLoad
,因此,如果将窗口rootViewController
属性设置为笔尖中的根ViewController,则这是预期的行为。
关于ios - iOS-在didFinishLaunchingWithOptions委托(delegate)之前调用viewDidLoad吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7030635/