iphone - 使用 loadView 时未调用 viewDidLoad

标签 iphone objective-c xcode viewdidload loadview

谁能解释为什么在使用 loadView 时没有调用 viewDidLoad?据我了解,viewDidLoad 仍应被调用。

- (void)loadView
{
    CGRect currentFrame = [[UIScreen mainScreen] applicationFrame];

    UIView* myView = [[UIView alloc] initWithFrame:CGRectMake(currentFrame.origin.x, currentFrame.origin.y, currentFrame.size.width, currentFrame.size.height)];
    myView.backgroundColor = [UIColor redColor];

    self.view = myView;
    [myView release];

    [super loadView];
}

- (void)viewDidLoad {

    //this never happens
    NSLog(@"VIEW DID LOAD!");
    [super viewDidLoad];
}

最佳答案

我刚刚发现,如果您在应用程序中手动调用 loadView,则不会调用 viewDidLoad。 如果您手动调用 loadView,则还必须手动调用 viewDidLoad。

此外,根据苹果文档,您不应该调用 [super loadView],因为它会用默认的 UIView 覆盖您的 View 。

关于iphone - 使用 loadView 时未调用 viewDidLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4653036/

相关文章:

iphone - IOS - 通过使用 ARC 的循环创建新的对象实例

ios - 具有多个目标的 Xcode 方案创建通用 Xcode 存档

从照片库共享图像时出现 iOS 共享扩展问题

objective-c - 在 iOS 中使用 Twitter 登录用户...使用什么?

c - 在xcode中添加多个.c文件

iphone - UILabel 超出应用程序框架

iphone - 如何向 UITableView 添加页脚?

iphone - 如何在应用内购买中运行开发签名构建?

iphone - Objective C @property 注释

iphone - 响应UIWebView点击 Action 调用原生代码页