4

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

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

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

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

提前致谢

4

1 回答 1

6

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

测验模型.h

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

测验模型.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

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

if ([QuizModel instance].isMultiplayer)

或者

[QuizModel instance].isMultiplayer = YES;
于 2012-07-04T10:12:34.027 回答