iphone - IB 中的 tabBar viewControllers : send custom init?

标签 iphone cocoa-touch interface-builder uitabbarcontroller

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

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

有什么建议吗?

谢谢, 凯尔索

最佳答案

Interface Builder 创建一个对象存档,当程序执行时该存档将取消存档。您无法真正告诉 IB 调用特定方法。

如果需要在调用viewWillAppear:之前进行初始化,可以在awakeFromNib中进行初始化,保证在加载所有对象和所有outlet之后调用已连接到他们的目标。

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

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

关于iphone - IB 中的 tabBar viewControllers : send custom init?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617973/

相关文章:

iphone - 如何为 CGPoint 线赋予独特的颜色 Xcode

objective-c - 将委托(delegate)分配给 CALayer 的子层会抛出 EXC_BAD_ACCESS?

ios - 将登录呈现为模态 iOS?

iphone - UIViewController 中的 UINavigationController

ios - 锁定在左右边缘的 View 可以改变高度......我如何限制它?

iphone - ManagedObjectContext 保存导致 NSManagedObject 数据损坏/失效

iphone - 如何跟踪 iOS 应用程序中图像的完整旋转总数?

iphone - 这些创建和处理数组的方法之间的基本区别是什么?

iphone - 我是否必须先分配 IB 中内置的 UIView,然后才能以模态方式显示它?

ios - 添加 ViewController.swift 并重命名后,它不会将我的 viewController 与那个 swift 类链接起来