0

WKInterfaceControllerApple Watchで 2 つの間でデータを転送または受け渡すことに慣れていません 。私がやろうとしているのは、とのような変数があるnameのでage、ユーザーが行をタップしたときにSecondInterfaceController値を渡す必要があるということです。WKInterfaceTableコードは次のとおりです。

- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex {

    NSString *name;
    NSString *age;

    switch (rowIndex) {
        case 0:
            name = @"Jack";
            age = @"22";
            break;

        default:
            break;
    }

    NSDictionary *d = [NSDictionary dictionaryWithObject:name forKey:@"kName"];
    [self pushControllerWithName:@"SecondInterfaceController" context:d];

}

しかし、 SecondInterfaceController から辞書にアクセスして _name (WKInterfaceLable) に渡す方法がわかりません。

4

1 に答える 1

1

プッシュすると、SecondInterfaceControllerそれがawakeWithContext:呼び出され、contextパラメーターは渡した辞書になります。次に、名前の値をコンテキスト ディクショナリから取得して、ラベルに割り当てることができます。

- (void)awakeWithContext:(id)context {
    NSDictionary *dict = (NSDictionary *)context;
    [_name setText:dict[@"kName"]];
}

複数のキーと値を辞書に追加することで、複数の値を渡すことができます。

NSDictionary *d = @{@"kName" : name, @"kAge" : age};
[self pushControllerWithName:@"SecondInterfaceController" context:d];
于 2015-06-19T14:42:13.713 に答える