2012-05-30 49 views
0

我想隐藏控制器init方法内的按钮。但它不工作。我已经创建了一个图像的插口从控制器访问它。不知道为什么图像不被隐藏。但我可以在viewdidload方法内部完成。是否因为视图仍未加载?访问UI组件内部控制器init方法

回答

2

是的,视图将在调用viewdidload时加载。因此对现有UI的任何更改都应该在视图中调用,以便加载或查看将会出现

1

您所讨论的UI组件是您正在创建的UIViewController所拥有的UIView的所有子视图。但是那个UIView及其子视图并不是在init方法被调用时创建的,所以你不能在那里改变它们。

viewDidLoad对于那些只需要查看已创建后,一旦运行任何代码的适当位置,但已经显示之前。

viewWillAppear:viewDidAppear:将在每次视图即将或分别再次变为可见时运行。

0

实际上,当loadView消息被发送到控制器的整个视图层级将被加载。第一次访问控制器视图时,该消息也会自动发送。这就是为什么您的按钮消息在init方法中被丢弃的原因,因为该对象尚未从xib/storyboard“解冻”。是的,进行视图定制的适当位置将在viewDidLoad委托方法内。

PS。另外...如果你想让按钮在初始化时被隐藏,为什么你不要在你的xib/storyboard中检查它的hidden属性?