Здравствуйте, я новичок в разработке IOS Watchkit.

Мне нужно передать данные, когда пользователь делает вкладки в строке таблицы. Я пробовал оба способа, используя segue и pushControllerWithName, и даже пробовал presentControllerWithName в методе

-(void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex
{
     [self contextForSegueWithIdentifier:@"navigare" inTable:self.tbl rowIndex:rowIndex];
     //And Tried following
     [self pushControllerWithName:(NSString *)@"ProfileInterfaceController" context: rowValue];

}

Здесь есть помощь?

0
Aadil Keshwani 8 Фев 2015 в 00:25

2 ответа

Лучший ответ

У вас возникли проблемы с доступом к «значению строки» из контроллера интерфейса профиля? Или вы просто не знаете, как этого добиться?

WatchKit позволяет отправлять данные в WKInterfaceController с переходом, используя метод presentControllerWithName:Context: .

Имя - это имя, присвоенное целевому WKInterfaceController в Интерфейсном Разработчике (не имя файла или любое другое).
Контекст - это параметр NSDictionary, который вы используете для отправки данных.

Когда целевой WKInterfaceController инициализируется, вызывается метод awakeWithContext: , и ваш контекстный словарь доступен для использования.

В предоставленном вами фрагменте кода трудно понять "rowValue". Перед отправкой это необходимо заключить в объект NSDictionary.

Ознакомьтесь с Справочник по платформе Apple для получения дополнительной информации

Не имеет отношения, но стоит отметить - нет необходимости добавлять (NSString *) при использовании синтаксиса литерала NSString (@ "Это строка") в Objective C.

4
phillfarrugia 8 Фев 2015 в 10:51
 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if(segue.identifier == "updatepurposesegue"){
        var vrc = segue.destinationViewController as NewPurposeViewController;

        vrc.temp = row

    }
}
-3
Ravi Borad 25 Мар 2015 в 09:00