我在 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/