具有多个笔尖的单视图控制器?

时间:2010-12-13 15:45:05

标签: iphone uiviewcontroller nib

我正在尝试构建一个可以“蒙皮”的视图控制器 - 也就是说,具有多个外观或个性但使用单个控制器。每个视图都有相同的按钮等,但我希望能够将每个nib文件(皮肤)加载到同一个视图控制器中。我可以创建多个nib文件,但我没有看到如何连接按钮和操作。我可以为多个nib文件指定相同的“文件所有者”吗? (怎么样?)。

可以这样做吗?

2 个答案:

答案 0 :(得分:8)

这是完全可能的。只需创建新的nib文件,然后在Interface Builder中将文件所有者设置为该类。然后,您可以像以前一样连接您的插座和操作。从您的代码中只需在initWithNibName:方法中指定正确的nib文件。

如果唯一的变化是装饰性的,那么您可能最好只是在代码中进行这些更改,但您提出的方法可以正常工作。

答案 1 :(得分:0)

如果你将nib文件中的视图复制并粘贴到同一个nib文件中,那么你可以更容易地做到这一点,这样你就可以在1个nib文件中有2个独立的视图。

example pic

然后您可以在加载nib时在视图之间切换,如下所示:

NSArray *temp = [[NSBundle mainBundle] loadNibNamed:@"Widget" owner:self options:nil];
Widget *w = [temp objectAtIndex:0]]; // or 1 or 2 etc to get the different views

这将复制你所有的按钮连接等,这样你就可以摆弄副本而无需再次设置所有内容