多个Xib文件 - 相同的类

时间:2009-12-19 17:56:40

标签: iphone cocoa cocoa-touch interface-builder xib

我对此很新,但我认为我想做的事情是有道理的。我有一个以纵向显示的xib和一个以横向显示的xib。两种观点都相似,但有一些差异。一些按钮,标签和文本字段是相同的。

当方向改变时,我可以揭示一个并隐藏另一个 - 这不是问题。

基本上我希望有一个地方可以处理所有常见的按钮点击响应或文本更改。当用户处于纵向模式并输入文本或选择按钮时,他们会切换到横向模式,相应的按钮和文本将会更新。

我尝试在界面构建器中添加NSObject并将其分配给具有按钮和文本字段的出口和操作的新类,但是当我与按钮交互时,我在xcode中得到“无法识别的选择器发送到实例”错误。

任何帮助都会很棒。

最佳, 病房

2 个答案:

答案 0 :(得分:6)

您在Interface Builder中添加的对象在XIB加载时被实例化,您不能在多个XIB中拥有相同的对象。

用于连接多个XIB的是您在每个XIB中看到的“文件所有者”对象。当您使用[NSBundle loadNibNamed:@"myXIB" owner:self]加载XIB时,您作为所有者对象传入的内容最终将作为已加载的XIB中的文件所有者而Cocoa将连接您在其中的IBOutlets和IBActions(请确保设置正确的类Interface Builder中的文件所有者对象。

那么你可以让你的风景视图的控制器对象成为纵向视图XIB的所有者,并将所有IBAction放在该控制器中,从那里可以从两个XIB中访问它们(通过控制器在一个中并通过文件所有者)另一个)。

答案 1 :(得分:1)

不要忘记xib不是模板 - 它们是冻干物体。一个按钮与另一个按钮没有连接。