viewDidLoad中的视图为空
我创建了viewDidLoad中的视图为空,view,nib,View,Nib,我创建了UITabBarController,每个选项卡包含UINavigationController,并在此UINavigationController中设置了rootviewcontroller,所有这些都是在interface builder中完成的。在viewDidLoad中,我尝试从视图中获取帧大小,但当我引用视图时,它返回null。以前有人经历过这种情况吗 所有IBoutlet都已正确连接。viewDidLoad如果在中连接了视图,则返回nil视图。xib可能意味着: 对于编程初始
UITabBarController
,每个选项卡包含UINavigationController
,并在此UINavigationController
中设置了rootviewcontroller,所有这些都是在interface builder中完成的。在viewDidLoad中,我尝试从视图中获取帧大小,但当我引用视图时,它返回null。以前有人经历过这种情况吗
所有IBoutlet都已正确连接。
viewDidLoad
如果在中连接了视图,则返回nil视图。xib
可能意味着:
对于编程初始化(自定义控制器):
- 您忘了在视图控制器类上同时调用
(您可能调用了initWithNibName:bundle:
或其他东西)init
- 您已经在视图控制器类中重写了
方法,但它没有设置loadView
view
- 未正确连接插座
- 您在显示视图或视图控制器之前意外释放了它
- 初始化视图时未正确指定
参数(找不到nib或找不到没有视图的nib..尽管这也会引发异常)nibName
- 内存不足,无法分配
(但应用程序可能在该点终止)视图
我建议您尝试在
视图中进行帧大小计算,此时将显示:
,并查看视图在该点上是否仍然为nil
。viewDidLoad
如果在中连接视图,则返回nil视图。xib
可能意味着:
对于编程初始化(自定义控制器):
- 您忘了在视图控制器类上同时调用
initWithNibName:bundle:
(您可能调用了init
或其他东西)
- 您已经在视图控制器类中重写了
loadView
方法,但它没有设置view
对于所有控制器:
- 未正确连接插座
- 您在显示视图或视图控制器之前意外释放了它
- 初始化视图时未正确指定
nibName
参数(找不到nib或找不到没有视图的nib..尽管这也会引发异常)
- 内存不足,无法分配
视图
(但应用程序可能在该点终止)
我建议您尝试在视图中进行帧大小计算,结果将显示:
,然后查看视图在该点上是否仍然为nil
。我没有调用任何init,因为我使用的是interface builder,并且没有覆盖loadView。我尝试在viewDidLoad中调用view,视图就在那里。为什么我不能在viewDidLoad中引用它,我想我没有错过您为我指出的所有列表。只需尝试在视图中进行计算就会出现。如果这不起作用,请尝试viewdide
。如果在视图显示时它不起作用,您可能没有正确访问帧
(在屏幕上绘制时它必须有一个帧)。是的,我可以引用ViewDidDisplay中的视图,但我希望设置视图一次,而不是每次视图显示时。只是想知道为什么viewDidLoad中的视图为空。您可以测试视图是否已设置,并且仅在尚未运行定位代码时运行定位代码。如果只是定位,请尝试将BOOL添加到控制器类中,仅当代码块为“否”时运行代码块,并在代码运行时将其设置为“是”。否则,请检查您的视图是否处于初始状态而不是设置状态。无意冒犯,但此答案没有帮助,而且不完整。像sarunw一样,我有必须访问子视图对象的初始化,并且必须在ViewDidLoad
中进行,而不是在它出现时。此外,您所说的“未正确连接插座”是什么意思?我如何检查“nibName参数没有(或)被正确指定”?问题是,所有脚本生成的视图/子视图在ViewDidLoad
中都为空,它们不应该为空。我们如何解决这个问题?我没有调用任何init,因为我使用的是interface builder,并且没有覆盖loadView。我尝试在viewDidLoad中调用view,视图就在那里。为什么我不能在viewDidLoad中引用它,我想我没有错过您为我指出的所有列表。只需尝试在视图中进行计算就会出现。如果这不起作用,请尝试viewdide
。如果在视图显示时它不起作用,您可能没有正确访问帧
(在屏幕上绘制时它必须有一个帧)。是的,我可以引用ViewDidDisplay中的视图,但我希望设置视图一次,而不是每次视图显示时。只是想知道为什么viewDidLoad中的视图为空。您可以测试视图是否已设置,并且仅在尚未运行定位代码时运行定位代码。如果只是定位,请尝试将BOOL添加到控制器类中,仅当代码块为“否”时运行代码块,并在代码运行时将其设置为“是”。否则,请检查您的视图是否处于初始状态而不是设置状态。无意冒犯,但此答案没有帮助,而且不完整。像sarunw一样,我有必须访问子视图对象的初始化,并且必须在ViewDidLoad
中进行,而不是在它出现时。此外,您所说的“未正确连接插座”是什么意思?我如何检查“nibName参数没有(或)被正确指定”?问题是,所有脚本生成的视图/子视图在ViewDidLoad
中都为空,它们不应该为空。我们如何解决这个问题?