Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从nib文件加载视图之前运行的方法或命令是什么?_Ios_Xcode - Fatal编程技术网

Ios 从nib文件加载视图之前运行的方法或命令是什么?

Ios 从nib文件加载视图之前运行的方法或命令是什么?,ios,xcode,Ios,Xcode,创建新的objective-c类UIViewController文件时。 我想知道在ViewController.m文件或其他文件中执行哪个命令/方法/行,然后再从nib文件生成视图 我只知道viewDidLoad将在nib文件之前首先运行。 还有别的事吗 感谢您在这里帮助小noob。尝试-(void)loadView方法。它在设置视图控制器的视图之前被调用,实际上这是您想要设置自身(控制器)的视图属性的地方。 尝试-(void)loadView方法。它在设置视图控制器的视图之前被调用,实际上这

创建新的objective-c类UIViewController文件时。 我想知道在ViewController.m文件或其他文件中执行哪个命令/方法/行,然后再从nib文件生成视图

我只知道viewDidLoad将在nib文件之前首先运行。 还有别的事吗

感谢您在这里帮助小noob。

尝试
-(void)loadView
方法。它在设置视图控制器的视图之前被调用,实际上这是您想要设置
自身
(控制器)的
视图
属性的地方。

尝试
-(void)loadView
方法。它在设置视图控制器的视图之前被调用,实际上这是您想要设置
自身
(控制器)的
视图
属性的地方。


加载视图层次结构之前唯一调用的方法是
initWithNibName:bundle:
方法。 然后,当您第一次访问视图控制器的
视图时,将加载
nib
(通过
loadview
方法),然后调用
viewDidLoad
方法。 我希望这能说明问题

注:尽管您可以覆盖
loadview
方法,但苹果表示:

如果使用Interface Builder创建视图并初始化 视图控制器,则不能重写此方法。(苹果关于loadview方法的文档)


加载视图层次结构之前唯一调用的方法是
initWithNibName:bundle:
方法。 然后,当您第一次访问视图控制器的
视图时,将加载
nib
(通过
loadview
方法),然后调用
viewDidLoad
方法。 我希望这能说明问题

注:尽管您可以覆盖
loadview
方法,但苹果表示:

如果使用Interface Builder创建视图并初始化 视图控制器,则不能重写此方法。(苹果关于loadview方法的文档)


感谢您的快速回复。我会试试的。谢谢你的快速回复。我会试试的。这很清楚。非常感谢。一件小事。如果我调用
[ViewController alloc]
[[ViewController alloc]initWithNibName:nil bundle:nil]
并再次调用
[self-viewDidLoad]
。运行视图时,我会得到与生成视图时相同的结果吗?您不会在self上调用viewDidLoad。这是一个委托方法,在加载视图层次结构时(在您的案例中,从nib)会为您调用该方法。如果这是视图的来源,那么在不传递nib的情况下初始化控制器又有什么意义呢?作为一般规则:只有当您打算以编程方式而不是通过nib文件创建视图层次结构时,才重写
loadview
方法。这一点非常清楚。非常感谢。一件小事。如果我调用
[ViewController alloc]
[[ViewController alloc]initWithNibName:nil bundle:nil]
并再次调用
[self-viewDidLoad]
。运行视图时,我会得到与生成视图时相同的结果吗?您不会在self上调用viewDidLoad。这是一个委托方法,在加载视图层次结构时(在您的案例中,从nib)会为您调用该方法。如果这是视图的来源,那么在不传递nib的情况下初始化控制器又有什么意义呢?作为一般规则:仅当您打算以编程方式而不是通过nib文件创建视图层次结构时,才重写
loadview
方法。
-(void)loadView
{
    self.view = [[UIView alloc] initWithFrame:...]; //Or get it from the nib...
}