2015-06-19 3 views
0

Я не знаком с передачей или передачей данных между двумя WKInterfaceController в Apple Watch. Я пытаюсь сделать это, у меня есть переменная типа name и age в SecondInterfaceController, поэтому мне нужно передать некоторое значение им от WKInterfaceTable, когда пользователь нажимает строку. вот код:Передача данных из WKInterfaceTable в другой WKInterfaceController

- (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]; 

} 

, но я не знаю, как я могу получить доступ к словарю из SecondIntefaceController и передать его в _name (WKInterfaceLable).

ответ

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]; 
+0

Спасибо! но как насчет прохождения разных словарей! I, если добавить 'dinoDict = [NSDictionary dictionaryWithObject: age forKey: @" kAge "];' будет передан только один словарь, как я могу прикрепить несколько значений к одному контексту? –

+1

@ Mc.Lover Я добавил код в свой ответ, чтобы показать, как передавать несколько значений в словаре – dan

Смежные вопросы