一尘不染

如何通过popViewControllerAnimated for Swift返回数据?

swift

我需要通过popView将一些数据从secondView发送回First View。如何通过popViewControllerAnimated发回数据?

谢谢!


阅读 272

收藏
2020-07-07

共1个答案

一尘不染

您可以使用 delegate

  1. 创建protocolChildViewController
  2. 在以下位置创建delegate变量ChildViewController
  3. 在扩展ChildViewController协议MainViewController
  4. 提供参考ChildViewControllerMainViewControllernavigate
  5. 在中定义delegate方法MainViewController
  6. 然后您可以delegateChildViewController

在ChildViewController中 下面编写代码…

protocol ChildViewControllerDelegate
{
     func childViewControllerResponse(parameter)
}

class ChildViewController:UIViewController
{
    var delegate: ChildViewControllerDelegate?
    ....
}

在MainViewController中

// extend `delegate`
class MainViewController:UIViewController,ChildViewControllerDelegate
{
    // Define Delegate Method
    func childViewControllerResponse(parameter)
    {
       .... // self.parameter = parameter
    }
}

有两种选择:

A)与塞格

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
   let goNext = segue.destinationViewController as ChildViewController
   goNext.delegate = self
}

B)没有塞格

let goNext = storyboard?.instantiateViewControllerWithIdentifier("childView") as ChildViewController
goNext.delegate = self
self.navigationController?.pushViewController(goNext, animated: true)

方法调用

self.delegate?.childViewControllerResponse(parameter)
2020-07-07