zoukankan      html  css  js  c++  java
  • 代理协议消息单方传递机制

    单方消息传递通常用于子视图向主视图传递数据,步骤如下;

    1.在子视图中

    1.1 定义协议及协议中规定的方法,协议名通常是子视图控制器名+Delegate:

    @protocol GameViewControllerDelegate <NSObject>
    
    - (void)gameOverDeliverTimer:(NSString *)timer;  
    
    @end

    1.2 定义代理:

    @property (weak, nonatomic) id <GameViewControllerDelegate> delegate;

    1.3 子视图中在需要的地方,通过定义的代理调用协议方法,在父视图中没有设置代理的话该方法是不起作用的:

    [_delegate gameOverDeliverTimer:_timerLabel.text]

    2.在父视图中

    2.1 父视图头文件需遵循子视图的协议才有资格申请成为代理:<GameViewControllerDelegate>

    2.2 推出子视图控制器前,将自己设置成为子视图的代理,通常是在prepareSegue中实现:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
        GameViewController *controller = [segue destinationViewController];  
        controller.delegate = self;
    }

    2.3 实现协议中的方法:

    - (void)gameOverDeliverTimer:(NSString *)timer{
        NSLog(@"最佳成绩:%@秒", timer);
    }
  • 相关阅读:
    例6-5
    例7-1+7-2
    例6-2+6-3
    习题二(3)
    习题二(1)
    课堂作业4
    课堂作业3
    实验三 利用循环计算n个圆柱体体积。
    实验三 编写求圆面积的程序,要求当输入的半径r<=0时,提示输入错误,要求r为浮点型,r的数值是动态的由键盘输入;
    心得3
  • 原文地址:https://www.cnblogs.com/litaowei/p/3723440.html
Copyright © 2011-2022 走看看