IB中的tabBar viewControllers:发送自定义的init?

问题描述:

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

目前我在viewWillAppear中进行初始化,但出于一系列原因,在IB中而不是在代码中执行它是有意义的。

有什么建议吗?

感谢, 凯尔索

+0

你需要标签发送不同的参数,或者你只需​​要自定义初始化方法? – nduplessis 2009-03-06 08:45:54

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

如果您需要在调用viewWillAppear:之前进行初始化,您可以在awakeFromNib中这样做,保证在加载所有对象并将所有插座连接到其目标之后调用该对象。

如果您想尽早进行初始化,您可以通过覆盖initWithCoder:(请参阅NSCoding协议以获得文档)来完成此操作。我不知道它是否记录在任何地方,但是这是指定从归档解码的对象的初始化。

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

我不认为有任何办法改变什么方法是由IB运行时调用加载时,你的笔尖。如果你描述了你想要完成的事情(也就是为什么在viewDidAppear中进行设置不适合你),你可能会得到一个更好的方法来处理你的初始化。