我正试图在控制器的init方法中隐藏一个按钮。但它不起作用。我已经为图像创建了一个插座,可以从控制器访问它。不知道为什么图像没有隐藏。但我可以在viewdidload方法中做到这一点。是因为视图仍未加载?
答案 0 :(得分:2)
是的,在调用viewdidload时将加载视图。因此,应该在视图中调用对现有UI的任何更改,否则将显示加载或视图
答案 1 :(得分:1)
您正在谈论的UI组件都是您正在创建的UIViewController所拥有的UIView的子视图。但是在调用init方法时实际上并没有创建UIView及其子视图,所以你不能在那里更改它们。
viewDidLoad
是任何代码的合适位置,只需在创建视图后但在显示视图之前运行一次。
viewWillAppear:
和viewDidAppear:
将在每次视图即将再次显示时运行。
答案 2 :(得分:0)
实际上,当loadView
消息发送到控制器时,将加载整个视图层次结构。第一次访问控制器视图时,也会自动发送此消息。这就是为什么您在init
方法中放弃按钮的消息,因为该对象尚未从xib
/ storyboard
“解冻”。是的,进行视图自定义的适当位置将在viewDidLoad
委托方法中。
PS。另外......如果您希望在初始化时隐藏按钮,为什么不在hidden
/ xib
中查看其storyboard
属性?