向多个 ViewController 转发数据

Passing Data Multiple ViewControllers Forward

将多个 ViewController 数据向前传递的可接受方式是什么?例如,我目前有一个带有 Core Data 的 iPhone 应用程序。 Core Data设置在AppDelegateclass中,初始ViewController为ViewControllerA​​。ViewControllerA​​不与Core Data交互,但转至ViewController B,它确实与 Core Data 交互并且需要在 AppDelegate 中设置变量 (NSManagedObjectContext)。我如何将信息从 AppDelegate 传递给 ViewController B?

我读到单例不是很好的做法,那么将变量传递给 ViewController A 然后再传递给 ViewController B 是否有意义?谢谢。

单身也可以!不要让任何人吓跑他们的正确使用。

确实它们可能会被滥用,但是将数据存储在中央位置比将数据传递到不使用数据的视图控制器链更有意义,只是在case 下线的视图控制器需要它!

确保您遵循 Apple 的设计模式,应该没问题。

这是实例化 class 的单例实例的典型方法:

+ (instancetype)singleton {
    static <ClassName> *singleton = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        singleton = [[<ClassName> alloc] init];
        // If you have any other, one-time configuration that you 
        // don't handle in "init", also do it here
    });
    return singleton;
}