iphone - 如何将 AppDelegate 中对象的引用传递给 ViewController

标签 iphone ios ipad ios5 coremidi

我在 Xcode 中使用 Storyboard创建了一个应用程序。该应用程序包含一个 UITabBarController (TBC) 和一些 UIViewControllers (VC),由 TBC 控制。

在 AppDelegate 中创建一个对象(我们称之为“myMidi”),它将监听传入的 MIDI 消息 (CoreMidi)。所以我在我的 VC 中实现了这个 myMidi-Object 的接口(interface)。 我使用 Interface Builder (IB) 中的“关系”选项将 View 连接到 TBC。

在 IB 中创建的所有 VC 都是我自己的 VC 类的一个实例。正如我之前提到的,在这个类中,我实现了我在 AppDelegate 中创建的 myMidi-Object 的接口(interface)。 因此,每个 VC 实例都包含一个 myMidi 对象的地址,现在需要在 AppDelegate 中创建的唯一引用。

所以我想知道如何访问当前 VC 或当前显示的 TBC 以将此引用传递给我的 VC 类?

或者我还能如何解决这个问题。我想我应该在 AppDelegate 的某处执行此操作,或者我是否也应该在 TBC 中保存引用并在创建 VC 时将其传递给每个新 VC!?

最佳答案

如果我没理解错的话,您希望您的 MyMidi 类的当前(唯一?)实例对您的 VC 可用吗?

如果你只有一个实例,考虑让 MyMidi 成为一个单例类,并给它一个类方法 à la + (MyMidi *)sharedInstance; 它总是返回 (并延迟初始化)同一个对象。这样,您就可以从任何地方访问它。

参见 this question关于如何在 Cocoa/Cocoa Touch 中实现单例。

关于iphone - 如何将 AppDelegate 中对象的引用传递给 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414502/

相关文章:

iphone - Box2D 无限循环 (b2World::SolveTOI)

ios - 如何在委托(delegate)中加载插页式广告并在另一个 View Controller 中显示?

objective-c - 将 Storyboard 创建的 UITableview 的高度调整为其内容的高度

用于条形码阅读器的 iOS 库

html - ipad 上意外的 DIV 边框线

iphone - IOS/iPhone基于 slider 值内存问题将图像加载到UIImage中

iphone - 我们必须在 iPhone 应用程序中的什么地方存储下载数据?

iphone - 减少 UIViewController 的背景 "alpha"

ios - Thread 1 : EXC_BAD_ACCESS (code=1, address=0x0) 在 swift 工作时试图登录 spotify

ios - 我怎样才能得到所有的天空 map 位置对象,以便我可以过滤它们?