在类之间传递数据

chr*_*s13 4 cocoa objective-c

我开发了一个问答游戏,一切都运行良好,但有一件事我想改进:我的问题是我有3个视图控制器.在第一个View Controller中,用户选择单人或多人模式.

第二个ViewController是测验游戏.但现在在第三个ViewController(结果屏幕)中我需要知道用户是选择单人还是多人模式.

我不知道如何将这个布尔值从ViewController 1传递给ViewController 3.

目前我在每个ViewController中都有一个布尔值,只是将这个变量从View1传递给View2然后传递给View3.但我不喜欢这个解决方案.有没有办法让我与代表解决这个问题?或者你知道其他更好的解决方案吗?

提前致谢

das*_*ght 6

模型 - 视图 - 控制器方法表明布尔值属于应用程序的模型代码.将模型设为单例是很常见的事情:

QuizModel.h

@interface QuizModel : NSObject
@property (nonatomic, readwrite) BOOL isMultiplayer;
-(id)init;
+(QuizModel*)instance;
@end
Run Code Online (Sandbox Code Playgroud)

QuizModel.m

static QuizModel* inst = nil;

@implementation QuizModel
@synthesize isMultiplayer;
-(id)init {
    if(self=[super init]) {
        self.isMultiplayer = NO;
    }
    return self;
}
+(QuizModel*)instance {
    if (!inst) inst = [[QuizModel alloc] init];
    return inst;
}
@end
Run Code Online (Sandbox Code Playgroud)

现在您可以在控制器代码中使用布尔值:include "QuizModel.h"和write

if ([QuizModel instance].isMultiplayer)
Run Code Online (Sandbox Code Playgroud)

要么

[QuizModel instance].isMultiplayer = YES;
Run Code Online (Sandbox Code Playgroud)