• BeeUISignal详解


    https://github.com/i5ting/Bee_Tutorial/wiki/BeeUISignal%E8%AF%A6%E8%A7%A3

    BeeUISignal是beeframework的核心,通过signal价值完成对各种变动的集中路由.是冒泡式的向上传递。

    beeUISignal扩展

    在UIView和UIViewController里都可以使用

    详见:

    • UIView+BeeUISignal
    • UIViewController+BeeUISignal

    可用方法

    4个可用方法,实际上是2个

    - (void)handleUISignal:(BeeUISignal *)signal;
    
    - (BeeUISignal *)sendUISignal:(NSString *)name;
    - (BeeUISignal *)sendUISignal:(NSString *)name withObject:(NSObject *)object;
    - (BeeUISignal *)sendUISignal:(NSString *)name withObject:(NSObject *)object from:(id)source;
    

    handleUISignal方法

    - (void)handleUISignal:(BeeUISignal *)signal
    {
        if ( self.superview )
        {
            [signal forward:self.superview];
        }
        else
        {
            signal.reach = YES;
    
        #if defined(__BEE_DEVELOPMENT__) && __BEE_DEVELOPMENT__
            CC( @"... [%@] > %@", signal.name, signal.callPath );
        #endif  // #if defined(__BEE_DEVELOPMENT__) && __BEE_DEVELOPMENT__
        }
    }
    
    1. 如果有superview,BeeUISignal会向上传递
    2. 如果没有superview,自己处理,并中断BeeUISignal的向上传递

    此方法比较典型的用法是Bee_UIStack里

    - (void)handleUISignal:(BeeUISignal *)signal
    {
        if ( signal.source != self )
        {
            BeeUIBoard * board = self.topBoard;
            if ( board )
            {
                [signal forward:board];
            }
            return;
        }   
        else
        {
            // TODO: 自己发给自己的
        }
    }
    

    sendUISignal方法

    有3个版本的sendUISignal重写方法

    这里我们用

    - (BeeUISignal *)sendUISignal:(NSString *)name withObject:(NSObject *)object from:(id)source;
    

    说事。

    参数列表

    • name      BeeUISignal名字,用于区分不同signal的唯一标识
    • object    传递的参数对象(比如按钮的tag或者顺序,行号等)
    • source    (todo:BeeUISignal源:即发送signal的源头)

    返回值 返回BeeUISignal对象,这个很少用到,只有当需要XX的时候才会用。

    关于source:如果没有设置,它的默认值是self。

    如何扩展View

    如何扩展ViewController

    总结

  • 相关阅读:
    ubuntu下eclipse连接mysql
    关于oracle 11g导出数据时 报 ORA 1455错误的处理
    SQL语句改动表名和字段名
    C++组合通信
    退出应用工具类
    ListView间隔设置颜色
    Android闪光灯操作
    Android设置对话框去除黑边
    android设置组件透明度
    git在windows命令行下使用
  • 原文地址:https://www.cnblogs.com/xuejinhui/p/4220626.html
Copyright © 2020-2023  润新知