I'm trying to hide a button inside the controller's init method. But its not working. I have created a outlet to the image to access it from the controller. Dont know why the image is not get hidden.But I can do it inside the viewdidload method. Is it because the view still not loaded?
问问题
74 次
3 回答
2
是的,视图将在调用 viewdidload 时加载。所以对现有 UI 的任何更改都应该在视图中调用,加载或视图将出现
于 2012-05-30T09:35:37.767 回答
1
您正在谈论的 UI 组件都是您正在创建的 UIViewController 拥有的 UIView 的所有子视图。但是在调用 init 方法时实际上并没有创建 UIView 及其子视图,因此您不能在那里更改它们。
viewDidLoad
是任何只需要在视图创建后、显示之前运行一次的代码的合适位置。
viewWillAppear:
并且viewDidAppear:
将在每次视图即将或刚刚再次变得可见时运行。
于 2012-05-30T09:40:02.853 回答
0
loadView
实际上,当消息发送到控制器时,整个视图层次结构将被加载。当您第一次访问控制器的视图时,也会自动发送此消息。这就是为什么您的按钮消息在init
方法中被丢弃,因为该对象尚未从xib
/中“解冻” storyboard
。是的,进行视图自定义的适当位置将在viewDidLoad
委托方法内。
PS。另外...如果您希望在初始化时隐藏按钮,为什么不检查它hidden
在xib
/中的属性storyboard
?
于 2012-05-30T09:51:01.717 回答