【问题标题】:Multiple Xib files - Same Class多个 Xib 文件 - 同一类
【发布时间】:2010-12-28 08:48:09
【问题描述】:

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

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

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

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

任何帮助都会很棒。

最好, 病房

【问题讨论】:

  • 您能发布完整的崩溃报告吗?甜甜圈的 Cookie,按钮不会将消息发送到您认为的对象。

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


【解决方案1】:

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

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

因此,您可以将横向视图的控制器对象设置为纵向视图 XIB 的所有者,并将所有 IBAction 放在该控制器中,在那里它们可以从两个 XIB 访问(通过一个控制器和一个文件的所有者另一个)。

【讨论】:

    【解决方案2】:

    不要忘记 xib 不是模板——它们是冻干的对象。一个按钮与另一个按钮无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-12
      • 2015-06-04
      • 2016-07-03
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      相关资源
      最近更新 更多