我得到无法同时满足约束的错误。
当视图控制器使用viewDidLoad建立自己时,我没有得到错误,但当使用loadView时,它确实得到了错误。。。为什么会发生这种情况?
我认为loadView和viewDidLoad之间的唯一区别是viewDidLoad发生在loadView之后。至少,这似乎是一个持续的解释。。。
我不知道我的答案是否能完全解决您的问题,但它可能是解决您问题的起点。
在使用loadView:之前,需要注意以下几点(您可能知道)
-
loadView是在加载视图时调用的方法,viewDidLoad则是在视图已加载。
-
loadView当您愿意用程序创建视图而不是在xib文件中设置时,建议使用其他方式使用或调用loadView没有意义(这完全取决于您的不过应用程序要求)。
-
如果您从故事中初始化视图,请不要调用superloadView板或xib文件。
-
如果你在故事板上初始化你的观点,不要打电话
[super loadView]
,并且您必须将rootView分配给self.view属性,如果在方法内部调用[super loadView]
,则最好不要重写此方法并将代码放入viewDidLoad方法中。。 -
如果您使用xib文件来设置视图,请修改在viewDidLoad中设置的对象,不要调用loadView;如果您是用程序创建视图,请在loadView初始化视图,并在>viewDidLoad进行附加设置。
约束错误通常会在故事板或xib文件中弹出,当选择"使用自动布局"时,如果取消选择,错误就会消失,因为您是在loadView中用程序创建视图的,您有责任确保自动布局选项被禁用,即您需要通过将其设置为"否"来使用setTranslatesAutoresizingMaskIntoConstraints
属性。
你也可以在这里和那里参考一些相关的问题,这些问题很可能会让你摆脱这个问题。
感谢并愉快地编码:)