2

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

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

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

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

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

4

2 回答 2

1

如果我理解正确,您希望您MyMidi的 VC 可以使用您班级的当前(唯一?)实例吗?

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

请参阅这个问题,了解如何在 Cocoa/Cocoa Touch 中实现单例。

于 2012-05-02T13:22:07.070 回答
0

使用 nsdefaultssetObjec:forKey:传递对象并将其获取到您想要的位置。或者在 appdelegate 中创建一个属性并通过它访问它

AppDelegate* appDelegate = (TappAppDelegate*) [[UIApplication sharedApplication] delegate];
appDelegate.object = yourObject;
于 2012-05-02T13:24:11.250 回答