重用笔尖的多个UIViewControllers
问题描述:
我已经创建了一些自定义UITableViewCells
在笔尖文件,并想用跨多个UIViewControllers
。重用笔尖的多个UIViewControllers
谁能告诉我最好的做法吗?关于加载笔尖的有限知识似乎表明您必须在Interface Builder中指定单个所有者类。
谢谢。
答
只要做到这一点;没有真正的障碍。至于文件所有者的类,只要绑定到笔尖的键存在于任何想要使用笔尖的对象中,您都可以。
答
您可以用initWithNibName:bundle:
以编程方式实例化UIViewController
类,并为多个控制器指定相同的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
其视图init'ed。在这种情况下,GameController
将成为您的单个文件所有者。
我想你也可以为文件的所有者指定一个'@接口',如果你想做得更干净一点。 – 2010-04-18 12:02:04
这是一个很棒的提示Kristopher。多谢你们。 – colm 2010-04-19 10:34:39