gpt4 book ai didi

iphone - viewWillAppear 在 iOS5 中被调用两次

转载 作者:太空狗 更新时间:2023-10-30 03:46:12 25 4
gpt4 key购买 nike

我正在运行我所有的应用程序以确保它不仅仅是一个应用程序,并且在我拥有的每个应用程序中,当我在 iOS5 模拟器或设备上运行时,viewWillAppear 方法被调用两次每个 View 。我有一个简单的 NSLog(@"1");,它每次都在我的控制台中出现两次。这只是我,还是发生了什么事? (在 iOS4 中只调用一次)

这是调用两次调用 viewWillAppear 的 View 的代码:

     CloseDoorViewController *closeVC;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
closeVC = [[ CloseDoorViewController alloc] initWithNibName:@"CloseDoorViewIpad" bundle:nil];
} else {
closeVC = [[ CloseDoorViewController alloc] initWithNibName:@"CloseDoorViewController" bundle:nil];
}

[self.view addSubview:closeVC.view];
[self presentModalViewController:closeVC animated:NO];

最佳答案

这是 -addSubview: 方法。

当添加或删除 View Controller 的 View 时,必须有人调用 View Controller 的“ View 事件”方法,例如 -viewWillAppear: 等。

实际上,在 iOS 5 之前,不推荐使用 -addSubview:/-removeFromSuperView View Controller 的 View ,因为它不调用“View Event”方法(您可以/应该自己调用)。相反,建议使用“间接”方式来执行此操作,例如 -presentModalViewController: 您使用(它会代表您调用“View Event”方法)。

在 iOS 5 上,Apple 更改了 -addSubview:/-removeFromSuperView 方法的行为以允许 View Controller 的直接 View 管理。所以现在,当您在 viewController 的 View 上使用这些方法时,将自动调用“View Event”方法。

所以它被调用了两次。

请参阅 here 上的视频“实现 UIViewController 包含”还有。

关于iphone - viewWillAppear 在 iOS5 中被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com