3

UITableViewCells在 nib 文件中创建了一些自定义,并希望在多个UIViewControllers.

谁能告诉我做到这一点的最佳做法?我在加载 nib 方面的有限知识似乎表明您必须在 Interface Builder 中指定一个所有者类。

谢谢。

4

2 回答 2

2

去做就对了; 没有真正的障碍。至于 File's Owner 类,只要你在 nib 中绑定的键存在于你想使用 nib 的任何对象中,就可以了。

于 2010-04-18T10:59:34.927 回答
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];

你可以看到,因为这两个都 extend ,所以这两个都将作为它的视图GameController被初始化。GameController.xib在这种情况下,GameController将是您的单一文件所有者。

于 2010-04-18T11:19:10.590 回答