一个简单的问题,我正在对从情节提要加载的 UITabBar 进行一些 UI 自定义(更改色调颜色,为 tabBar 背景设置图像等)。我的问题是最好的地方是哪里,我不使用 IBOutlets 只是在情节提要中布置的对象。目前我正在使用initWithCoder:
,但有人提到awakeFromNib:
(这对我来说似乎不对)所以我只是想检查一下。
问问题
175 次
2 回答
1
-awakeFromNib
如果您确定将始终使用 nib 来加载视图,那么它是一个完全可以接受的调用方法来设置视图样式的地方。但同样适用于使用-initWithCoder
.
我最常使用-awakeFromNib
有几个原因。首先,来自文档:
nib 加载基础结构向从 nib 存档重新创建的每个对象发送 awakeFromNib 消息,但前提是存档中的所有对象都已加载和初始化。当一个对象收到一个 awakeFromNib 消息时,它保证已经建立了它的所有出口和动作连接。
目前,这对你来说并不重要,因为你没有接触任何出口。但过了一段时间,您可能最终会使用它们,很高兴看到您所有的自定义/设置工作都包含在一个方法中。
-viewDidLoad
是另一种选择。当您想要支持以编程方式或从 nib 加载的视图时,非常适合设置/自定义。
于 2013-01-30T20:33:00.923 回答
1
我会:
- 完全以编程方式创建 UI 对象
- 或者在情节提要中创建 UI 对象,然后将 IBOutlets 连接到这些对象
然后在initWithCoder:
方法中可以自定义UITabBar。
于 2013-01-30T19:23:12.463 回答