objective-c - 在类之间传递数据

标签 objective-c cocoa

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

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

我不知道如何将这个 bool 值从 ViewController 1 传递到 ViewController 3。

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

提前致谢

最佳答案

模型- View - Controller 方法表明 bool 值属于应用程序的模型代码。使您的模型成为单例是很常见的事情:

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

现在您可以在 Controller 代码中使用 bool 值:包括 "QuizModel.h",然后编写

if ([QuizModel instance].isMultiplayer)

[QuizModel instance].isMultiplayer = YES;

关于objective-c - 在类之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11326761/

相关文章:

ios - 使用 openssl 的 RSA 加密,使用 PKCS1 填充的加密文本的可变长度

objective-c - 在 sendAsynchronousRequest 中使用 WebView?

objective-c - 如何以编程方式触发 Finder 的移动文件对话框?

cocoa - 删除 Xcode 3.2 中的文档弹出窗口

objective-c - iOS 应用程序上的红条

iphone - UIScrollView 滚动时 CADisplayLink 停止更新

ios - 在 Objective-C 中使用全局变量

iPhone iOS NSMutableAttributedString 编辑器示例

针对互联网应用程序的 Objective-C/Cocoa 教程?

iphone - ios4中如何执行网络后台