2016-01-22 92 views
-1

在wkinterfacecontroller 1中,我定義了兩個int值:base [8] [8]和player [8] [8]。使用for循環我爲兩者生成我的值。 現在我想geht訪問它們在wkinterfacecontroller 2和3.WatchOS - 讓int對所有wkinterfacecontroller都可見的最佳方法

但我真的不知道如何。將每個int保存在nsuserdefaults中並加載到其他控制器中有一點奇怪...

+0

您的其他視圖控制器是否需要修改這些屬性? – 2016-01-23 00:50:03

+0

是的。控制器2和3必須修改它們,控制器1將它們展示給用戶 – Sausagesalad

回答

1

創建一個單例模型包含您的數據。從您需要此數據的所有視圖中引用此類。通過下面的代碼,您可以通過調用[Model sharedModel]來引用「模型」。訪問變量:[Model sharedModel].myVariableName

// Model.m 
// This method will only create one instance of Model no matter how many times it's called. 
// Import its header and use this method to get its reference 
+ (instancetype)sharedModel 
{ 
    static Model *sharedModel; 

    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     sharedModel = [[self alloc] initPrivate]; 
    }); 
    return sharedModel; 
} 

// Raise exception to make sure you don't create more than one object of the Model class 
- (instancetype)init { 
    [NSException raise:@"Singleton" 
       format:@"Use +[Model sharedModel]"]; 
    return nil; 
} 

// Private init method 
- (instancetype)initPrivate 
{ 
    if (self = [super init]) { 
     // Set properties 
    } 
    return self; 
} 
相關問題