(一)要创建一个协议,写在class之前(类似于监听接口) protocol FTVCdelegte : NSObjectProtocol{ //在协议里面,声明许多方法 // 第一个,改变标题 func change(title:String) //第二个,改变背景色 func ChangeColoer (Coloer:UIColor) //是否成功的标志 func ChangSucces(YON:Bool) } (二)创建一个遵守协议的对象,写在定义属性处。(协议属性对象) var delegate_zsj:FTVCdelegte? //比如这个在下一个界面,作为属性 (三)点击返回,传递参数(被观察者) func backBtnAction() { delegate_zsj?.change(title: "首页") //协议中的方法 delegate_zsj?.ChangeColoer(Coloer: UIColor.red)//协议中的方法 delegate_zsj?.ChangSucces(YON: true)//协议中的方法 self.navigationController?.popViewController(animated: true)//返回上一界面 } (四)实现代理:(类似于观察者) class ViewController: UIViewController,FTVCdelegte{ //(五)实现协议方法:必须全部实现 //更改主题名字 func change(title: String) { self.title = title self.bbb = title } func ChangeColoer(Coloer: UIColor) { self.view.backgroundColor = Coloer } func ChangSucces(YON: Bool) { print(YON) }