3

我已经创建了一些自定义UITableViewCells在笔尖文件,并想用跨多个UIViewControllers重用笔尖的多个UIViewControllers

谁能告诉我最好的做法吗?关于加载笔尖的有限知识似乎表明您必须在Interface Builder中指定单个所有者类。

谢谢。

回答

2

只要做到这一点;没有真正的障碍。至于文件所有者的类,只要绑定到笔尖的键存在于任何想要使用笔尖的对象中,您都可以。

+1

我想你也可以为文件的所有者指定一个'@接口',如果你想做得更干净一点。 – 2010-04-18 12:02:04

+0

这是一个很棒的提示Kristopher。多谢你们。 – colm 2010-04-19 10:34:39

1

您可以用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将成为您的单个文件所有者。