Iphone self.view=aViewController.view vs[aViewController loadView]-

Iphone self.view=aViewController.view vs[aViewController loadView]-,iphone,uiviewcontroller,loadview,Iphone,Uiviewcontroller,Loadview,我试图了解视图控制器从一个切换到另一个(显示不同视图)时的行为 AddSubView语句的一部分似乎有效,我找不到对这两个语句的解释: self.view = someViewController.view; self.view=someViewController.view; [someViewController loadView] 事实上,我得到了一个例子,其中只有第一个看起来有效(在someViewController中定义的视图被显示),而在另一个例子中只有第二个 更准确地说,从根v

我试图了解视图控制器从一个切换到另一个(显示不同视图)时的行为

AddSubView语句的一部分似乎有效,我找不到对这两个语句的解释:

self.view = someViewController.view;
self.view=someViewController.view; [someViewController loadView]

事实上,我得到了一个例子,其中只有第一个看起来有效(在someViewController中定义的视图被显示),而在另一个例子中只有第二个

更准确地说,从根viewController.view到另一个viewController.view(已提示)我必须使用第一个,要返回,我需要使用第二个。 我不明白在目前的情况下,允许一种或另一种说法起作用的原因是什么


谢谢你

你的问题很难理解。但我要试着回答:

iPhone操作系统使用一组视图,并向用户显示第一个视图。 可以将视图弹出(删除)或推送(添加)到此堆栈中

您提供的代码有些“晦涩”。获得控制权的最佳实践是将子视图添加到窗口或任何其他视图中

i、 e.
[窗口添加子视图:viewController.view]

不要使用
self.view=someViewController.view来覆盖当前视图;
而是初始化新的ViewController并将其视图添加到当前视图的子视图中


有问题吗?只需评论。

甚至很难理解你的问题。但我要试着回答:

iPhone操作系统使用一组视图,并向用户显示第一个视图。 可以将视图弹出(删除)或推送(添加)到此堆栈中

您提供的代码有些“晦涩”。获得控制权的最佳实践是将子视图添加到窗口或任何其他视图中

i、 e.
[窗口添加子视图:viewController.view]

不要使用
self.view=someViewController.view来覆盖当前视图;
而是初始化新的ViewController并将其视图添加到当前视图的子视图中


有问题吗?请发表评论。

看起来您对视图控制器的工作方式有一些误解

这两种说法有两个错误:

self.view = someViewController.view;
根据UIViewController.view的文档:

“每个视图控制器对象都是其视图的唯一所有者。不能将同一视图对象与多个视图控制器对象关联。”-Apple Docs

一旦该行代码执行,视图将有两个不同的控制器,这是不好的

下一行:

[someViewController loadView];
这很糟糕,因为您不应该显式调用loadView

从UIViewController.loadView的文档中:

“您不应该直接调用此方法。”

从UIViewController.view的文档中:

如果您访问此属性且其当前值为零,则视图控制器将自动调用loadView方法并返回结果视图


花些时间学习viewController教程和指南,如“iPhone操作系统的View Controller编程指南”。它们是很好的文档,可以教很多东西。

看起来您对视图控制器的工作方式有一些误解

这两种说法有两个错误:

self.view = someViewController.view;
根据UIViewController.view的文档:

“每个视图控制器对象都是其视图的唯一所有者。不能将同一视图对象与多个视图控制器对象关联。”-Apple Docs

一旦该行代码执行,视图将有两个不同的控制器,这是不好的

下一行:

[someViewController loadView];
这很糟糕,因为您不应该显式调用loadView

从UIViewController.loadView的文档中:

“您不应该直接调用此方法。”

从UIViewController.view的文档中:

如果您访问此属性且其当前值为零,则视图控制器将自动调用loadView方法并返回结果视图


花些时间学习viewController教程和指南,如“iPhone操作系统的View Controller编程指南”。他们是很好的医生,可以教很多东西。

非常感谢您的关注和回复。如果我的帖子结果不清楚,我道歉。这是我有史以来的第一篇帖子,我试图尽可能多地合成,也许这有点太合成了。。。无论如何,我很高兴读到self.view=someViewController.view;这不是一个好的实践,事实上,即使它似乎达到了显示另一个视图的目的,对我来说也没有意义。我将继续尝试addSubview技术。再次感谢您的关注和回复。如果我的帖子结果不清楚,我道歉。这是我有史以来的第一篇帖子,我试图尽可能多地合成,也许这有点太合成了。。。无论如何,我很高兴读到self.view=someViewController.view;这不是一个好的实践,事实上,即使它似乎达到了显示另一个视图的目的,对我来说也没有意义。我将继续尝试addSubview技术。再次感谢您的回复。我一定会仔细查阅您提供的文件。非常感谢您的回复。我一定会仔细查阅你所指的文件。