iOS中自定义delegate的实现

本文介绍了在iOS开发中自定义delegate的步骤。首先在SettingsViewController头文件中声明协议和方法,包括必选和可选方法。接着在受委托的MainViewController中导入协议并实现相关方法。最后在MainViewController的实现文件中设置委托对象并实现协议方法。通过这些步骤,完成自定义delegate的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在iOS开发中经常会用到delegate,无论是视图、控件,还是不同页面之间传值等等。

        通常,我们需要自定义delegate实现,以下简单介绍自定义delegate的步骤


1.定义delegate的protocol文件

        假如SettingsViewController类需要委托MainViewController类实现自身协议方法。

        首先,在头文件SettingsViewController.h文件中添加如下内容:


        //  声明协议名称和方法

        @protocol buttonDelegate
        @required

        -(void)settingsButtonTapped;

        -(void)bookmarksButtonTapped;

        @optional 

        -(void)doubleClick;

        -(void)fastForward;

        @end

      

        // delegate属性

        @property (assign, nonatomic)id<buttonDelegate>delegate;

        @end


@protocl 后的MainViewDelegate则为自定义delegate名,受委托类需要引用该名字其中@required标识其下面的函数定义为必须实现方法,类似c++中如果我们定义了纯需函数,则其子类必须定义纯虚函数内容。而@option则标识其下面的函数为可选实现方法,类似c++开发中的虚函数,其子类无需一定要定义虚函数的内容。

       然后在触发的地方添加:

        [delegate settingsButtonTapped];

          [delegate  bookmarksButtonTapped];


2.在受委托类的头文件MainViewController.h中定义


      #import "SettingsViewController.h"

        @interface MainViewController : UIViewController<buttonDelegate>

        {

               MainView *_contentView;
               SettingsViewController   *_settingsViewController;  

          }


在类定义中使用“<>”符号作为deleate的名字。


3.最后在类的实现文件MainViewController.m中定义该delegate中必须定义的函数内容:


        @implementation 

        - (void)viewDidLoad

       {

              _settingsViewController.delegate = self;      // 置委托对象,SettingsViewController委托MainViewController

        }

       // 实现委托方法

        - (void)settingsButtonTapped 

       {

            ......

        }
        - (void)bookmarksButtonTapped 

        {
             ......
         }


好了,自定义delegate就完成了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值