2015-05-11 2 views
1

Я хотел бы обновить заголовок кнопки (серая кнопка) в первом интерфейсном контроллере, нажав синюю кнопку во втором интерфейсном контроллере.Как отправить данные обратно на предыдущий контроллер интерфейса?

  • Я был в состоянии использовать счетчик, чтобы обновить этикетку, но как бы мне сделать, чтобы отправить результат обратно к первому интерфейсу контроллера

  • она должна быть выполнена во втором контроллере интерфейса а затем результат посылается обратно через толчок

  • непосредственно перейти
  • Как бы использовать pushControllerWithName("secondController",context: ...)

S hould я сделать что-то вроде этого:

var counter = 1 

@IBAction func addOne() { 

    greyButtonLabel.setTitle("\(counter++)") 
    pushControllerWithName("secondController", context : add) 
} 


// The second interface controller 

override func awakeWithContext(context: AnyObject?) { 
     super.awakeWithContext(context)  

     if let addone = context as? counter { 
     greyButtonLabel.setTitle("\(counter++)") 
     } 
} 

enter image description here

+0

Возможный дубликат [Передача данных из модального вида в WatchKit] (https://stackoverflow.com/questions/27021186/passing-data-back-from-a-modal-view-in-watchkit) – BootMaker

+0

@BootMaker код в другом вопросе находится в объективеC – AziCode

ответ

1

Вы не можете изменить элемент пользовательского интерфейса в первый контроллер интерфейса, когда он не активен.

Вот один из возможных способов:

  • Отправить self первого контроллера интерфейса ко второму (с использованием pushControllerWithName("secondController", context: ...)).
  • Обновите свойство в первом интерфейсном контроллере, пока активен второй контроллер интерфейса.
  • Вы можете программно вернуться к первому интерфейсу контроллера, вызвав метод popController контроллера интерфейса.
  • Когда активирован первый контроллер интерфейса, зачитайте свойство и соответствующим образом обновите кнопку (в методе willActivate).
+2

Чтобы добавить к ответу vomako, это может помочь вам понять жизненный цикл того, что значит для 'WKInterfaceController', быть активным: http://blog.mikeswanson.com/ post/118262770484/watchkit-controller-life-cycle –

+1

Спасибо, Майк, отличное дополнение, как всегда! – vomako

+0

Спасибо, ребята, я постараюсь заставить его работать и сообщить вам, что произошло. – AziCode

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