iOS必须SwiftSwift_VIP专场汇总iOS Developer

oc程序员学习swift(二)- 协议代理使用

2016-12-23  本文已影响112人  LJ_影子

        swift协议代理的使用跟oc的协议代理差不套多,不过语法上还是有不小的区别。swift使用协议的关键字:protocol,协议的语法:protocol Pro1{//这里定义属性或者方法},

        swift创建协议并声明代理属性:

        protocol    ViewControllerSDelegate {

                    funcViewControllerDelegateLoadDataOne();   // 不带参的

                    funcViewControllerDelegateLoadDataTwo(str:String); // 带参的

        }

       func doClick() {  // 点击触发的方法

                  self.delegate?.funcViewControllerDelegateLoadDataOne()//让代理去执行代理方法

      }

        控制器方法实现

        class  ViewController:UIViewController,ViewControllerDelegate {

              var   delegate:ViewControllerDelegate?;

              override   func   viewDidLoad() {

                       super.viewDidLoad()

                       self.delegate=self;

              }

              internal  func  ViewControllerDelegateLoadDataOne() {

              }

              func   ViewControllerDelegateLoadDataTwo(str:String) {

             }

       }

      oc拟定协议:

            @protocol  ViewControllerDelegate  <NSObject>

            @required//缺省属性,必须要实现

            - (void)show;//show是必须要实现

             @optional//可选实现

             - (void)show1;//show1是可实现也可不实现

            @end

           - (void) onClick { 

                    if([self.delegate respondsToSelector:@selector(show)]) {

                              [self.delegate show];

                   }

            }

            遵守协议

          @interface  ViewController()<ViewControllerDelegate>

           @end

           设置代理实现方法   

            - (void)viewDidLoad {

                     [superviewDidLoad];

                     self.delegate = self; // 设置代理

             }

             -(void) show {

            }

            -(void) show1{

            }

上一篇下一篇

猜你喜欢

热点阅读