我开发了一个问答游戏,一切都很好,但有一件事我想改进: 我的问题是我有3个视图控制器。在第一个视图控制器中,用户选择单人或多人模式。
第二个ViewController是测验游戏。 但现在在第三个ViewController(结果屏幕)中,我需要知道用户是选择单人还是多人模式。
我不知道如何将这个布尔值从ViewController 1传递给ViewController 3。
目前我在每个ViewController中都有一个布尔值,只是将这个变量从View1传递给View2然后传递给View3。但我不喜欢这个解决方案。有没有办法让我与代表解决这个问题?或者你知道其他任何更好的解决方案吗?
提前致谢
答案 0 :(得分:6)
模型 - 视图 - 控制器方法表明布尔值属于应用程序的模型代码。将模型设为 singleton 是很常见的事情:
QuizModel.h
@interface QuizModel : NSObject
@property (nonatomic, readwrite) BOOL isMultiplayer;
-(id)init;
+(QuizModel*)instance;
@end
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
现在您可以在控制器代码中使用布尔值:include "QuizModel.h"
,然后写
if ([QuizModel instance].isMultiplayer)
或
[QuizModel instance].isMultiplayer = YES;