如何将数据发送回以前的接口控制器?

时间:2015-05-11 21:36:43

标签: swift watchkit

我想通过按第二个接口控制器中的蓝色按钮来更新第一个接口控制器中的按钮标题(灰色按钮)。

  • 我能够使用计数器来更新标签,但是如何将结果发送回第一个接口Controller

  • 应该在第二个接口控制器中执行,然后通过push segue发回结果

  • 我如何使用pushControllerWithName("secondController",context: ... )

我应该做那样的事情:

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

1 个答案:

答案 0 :(得分:1)

当第一个界面控制器处于非活动状态时,您无法更改它。

这是一种可能的方式:

  • 将第一个接口控制器的self发送到第二个接口控制器(使用pushControllerWithName("secondController", context: ... ))。
  • 在第二个接口控制器处于活动状态时更新第一个接口控制器中的属性。
  • 您可以通过调用第二个接口控制器的popController方法以编程方式返回第一个接口控制器。
  • 当第一个界面控制器被激活时,读出属性并相应地更新按钮(在方法willActivate中)。