Подтвердить что ты не робот

Подготовить эквивалент readyForSegue в WatchKit

У меня есть интерфейс с 2 кнопками, оба из них вызывают один и тот же интерфейс, но с разной информацией. В традиционном интерфейсе я использую prepareForSegue, но я не знаю, что эквивалентно ему в WatchKit.

4b9b3361

Ответ 1

Вы можете сделать это двумя способами:

В вашем раскадровке вы устанавливаете идентификатор в своем сегменте:

enter image description here

а затем вы можете использовать contextForSegueWithIdentifier:

- (id)contextForSegueWithIdentifier:(NSString *)segueIdentifier {
     if ([segueIdentifier isEqualToString:@"yourIdentifier"]) {
        return aDictionaryWithYourInformation;
     }
}

Или вы можете передавать информацию с помощью контекста через код, используя:

[self pushControllerWithName:@"YourViewController"
                     context:aDictionary];

Этот контекст является словарем, и у вас есть доступ к этому словарю в - (void)awakeWithContext:(id)context

Ответ 2

Для segue-навигации в Watchkit в WKInterfaceController есть два метода:

override func contextForSegueWithIdentifier(segueIdentifier: String) -> AnyObject? {
        return //your object
    }

и для таблиц

override func contextsForSegueWithIdentifier(segueIdentifier: String, inTable table: WKInterfaceTable, rowIndex: Int) -> [AnyObject]? {
      return  //your object
    }

вы можете получить объект, который вы передаете в func awakeWithContext(context: AnyObject?) контроллера интерфейса, на который вы нажимаете

Ответ 3

В WatchKit вы можете использовать это для вызова WKInterfaceController:

[self pushControllerWithName:@"YourControlName"
          context:[self contextForSegueWithIdentifier:@"YourControlName"]];