相关疑难解决方法(0)

正确的loadView实现

Apple的文档没有说明loadView的正确实现.

我发现如果你像这样实现loadView:

- (void)loadView
{
    self.view = [[UIView alloc] init];
}
Run Code Online (Sandbox Code Playgroud)

...然后你会得到不同的行为,而不是你根本没有实现它.特别是,在一个20行的项目中,我发现viewWillAppear被调用为self.view的零大小框架 - 除非你使用Apple的默认版本的loadView.

在Google上看,有很多"教程"提供了明显错误的loadView实现 - 例如强制设置大小为(320,480),因为教程作者"发现它可行,如果我这样做".

我想知道正确的实现应该是什么.

注意:在上面的例子中,我将它添加到AppDelegate中的视图层次结构中,如下所示:

[self.window addSubview:(UIViewController*).view];
Run Code Online (Sandbox Code Playgroud)

我相信,在存在UINavigationController或UITabBarController的情况下,Apple会做一些额外的魔术 - 作为副作用 - 导致单行loadView实现正常工作.但是我想写得正确,所以它总能奏效!

注意:我已尝试在根视图上设置自动调整掩码,但它不会改变发生的情况:

- (void)loadView
{
    self.view = [[UIView alloc] init];
    self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uiview ios

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

ios ×1

uiview ×1

uiviewcontroller ×1