我有一个视图控制器,其行为由属性决定。这些属性在其父级中通过
这可能会导致我的程序出现潜在的错误,因为不能保证设置属性的父级已经设置好了这些属性,所以我想要有一个默认值。经过研究,我现在明白Objective C中的属性没有默认值。这让我只剩下以下选择:
在父级的
prepareForSegue
进行设置。这可能会导致我的程序出现潜在的错误,因为不能保证设置属性的父级已经设置好了这些属性,所以我想要有一个默认值。经过研究,我现在明白Objective C中的属性没有默认值。这让我只剩下以下选择:
- 在子视图的
viewDidLoad
方法中设置属性的默认值。然而,在调查后发现,viewDidLoad
在父级中的prepareForSegue
之后调用,因此当父级实际上设置属性时,我将覆盖父级的值。 - 然后我想使用
(id)init
来初始化这些值,但至少在使用storyboards时,这个方法根本不被调用!
在父级的
prepareForSegue
之前,是否有任何机会在子视图控制器中初始化值?
viewDidLoad
这样的钩子函数,可以让外部操作者在发送消息给你的视图控制器之前先执行它。 - El TeainitWithCoder:
就足够了。 - Sebastian