我在nib文件中创建了一些自定义UITableViewCells
,并希望在多个UIViewControllers
中使用它。
有谁能告诉我这样做的最佳做法?我在加载nibs方面的有限知识似乎暗示你必须在Interface Builder中指定一个所有者类。
感谢。
答案 0 :(得分:2)
做到这一点;没有真正的障碍。至于文件所有者的类,只要你在nib中绑定的键存在于你想要使用nib的任何对象中,你就可以了。
答案 1 :(得分:1)
您可以使用UIViewController
以编程方式实例化initWithNibName:bundle:
类,并为多个控制器指定相同的nib。例如,我正在构建一个游戏,它有一个GameController
类,用于定义其中的基本游戏逻辑。 GameController
有一个关联的GameController.xib
文件,该文件会在自定义初始化程序中加载:
- (id)initWithOptions:(NSDictionary *)gameOptions
{
if (self = [super initWithNibName:@"GameController" bundle:nil])
{
// code here
}
return self;
}
我有几种不同的游戏类型:点对点,本地和&线上。游戏逻辑是相同的,但通信实现略有不同,因此每个都是GameController
的子类。根据应用程序的使用方式,它将实例化一个不同的控制器:
local = [[LocalGameController alloc] initWithOptions:options];
online = [[OnlineGameController alloc] initWithOptions:options];
你可以看到,因为这些都扩展了GameController
,所以这两个都将以GameController.xib
为视图进行初始化。在这种情况下,GameController
将是您的单个文件所有者。