0

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?

4

3 回答 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。另外...如果您希望在初始化时隐藏按钮,为什么不检查它hiddenxib/中的属性storyboard

于 2012-05-30T09:51:01.717 回答