0

一个简单的问题,我正在对从情节提要加载的 UITabBar 进行一些 UI 自定义(更改色调颜色,为 tabBar 背景设置图像等)。我的问题是最好的地方是哪里,我不使用 IBOutlets 只是在情节提要中布置的对象。目前我正在使用initWithCoder:,但有人提到awakeFromNib:(这对我来说似乎不对)所以我只是想检查一下。

4

2 回答 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 回答