【问题标题】:tabBar viewControllers in IB: send custom init?IB 中的 tabBar viewControllers:发送自定义初始化?
【发布时间】:2010-10-11 16:54:30
【问题描述】:

我的基于 tabBarController 的应用程序有几个选项卡。每个都有一个自定义 viewController 类,唯一的区别是初始化实例的方式。有没有办法让界面生成器发送不同的选项卡自定义初始化参数?

目前我正在 viewWillAppear 中进行初始化,但出于多种原因,在 IB 中而不是在代码中进行初始化是有意义的。

有什么建议吗?

谢谢, 凯尔索

【问题讨论】:

  • 您需要tabbard来发送不同的参数还是只需要自定义初始化方法?
  • 我建议添加cocoa-touch、iphone-sdk标签。

标签: iphone cocoa-touch interface-builder uitabbarcontroller


【解决方案1】:

我认为没有任何方法可以更改加载 nib 时 IB 运行时调用的方法。如果您描述了您要完成的工作(即为什么在 viewDidAppear 中进行设置对您不起作用),您可能会得到有关处理初始化的更好方法的建议。

【讨论】:

    【解决方案2】:

    Interface Builder 创建一个对象存档,当您执行程序时该存档未存档。你不能真正告诉 IB 调用特定的方法。

    如果您需要在调用viewWillAppear: 之前进行初始化,您可以在awakeFromNib 中进行初始化,保证在所有对象都已加载并且所有出口都已连接到它们的目标后调用。

    如果您想更早地进行初始化,可以通过覆盖initWithCoder: 来实现(请参阅NSCoding 协议以获取文档)。我不知道它是否记录在任何地方,但这是为从档案中解码的对象指定的初始化。

    在上述所有情况下,您将无法接收参数,但在代码中,您应该能够通过明智地使用全局变量来访问您需要的任何内容。您还可以使用[[UIApplication sharedApplication] delegate] 来访问您的应用程序委托对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      相关资源
      最近更新 更多