5-3-2RAC-使用信号创建登录注册逻辑(传统的思维逻辑)

登录界面xib设置

111.png
#import "ViewController.h"
#import <ReactiveObjC/ReactiveObjC.h>
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *accountField;
@property (weak, nonatomic) IBOutlet UITextField *passwordField;
@property (weak, nonatomic) IBOutlet UIButton *LoginButton;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //处理文本框业务逻辑
  RACSignal *loginEnableSignal = [RACSignal combineLatest:@[_accountField.rac_textSignal,_passwordField.rac_textSignal] reduce:^id _Nonnull (NSString *account,NSString *pwd){
        return @(account.length&&pwd.length);
    }];
    //设置按钮
    RAC(_LoginButton,enabled) = loginEnableSignal;
    
    //创建命令
    RACCommand *command = [[RACCommand alloc] initWithSignalBlock:^RACSignal * _Nonnull(id  _Nullable input) {
        //处理事件密码加密
        NSLog(@"准备发送请求");
        NSLog(@"拿到%@",input);
        
        return [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
            //发送请求&&获取登录结果!!
            [subscriber sendNext:@"请求登录数据"];
            [subscriber sendCompleted];
                return nil;
        }];
    }];
    //获取命令中信号源
    [command.executionSignals.switchToLatest subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];
    //监听命令执行过程!!
    [command.executing /*skip:1] */subscribeNext:^(NSNumber * _Nullable x) {
        NSLog(@"%@",x);
        if ([x boolValue]) {
            NSLog(@"显示菊花");
        }else{
            NSLog(@"干掉菊花");
        }
    }];
    //监听按钮的点击
    [[_LoginButton rac_signalForControlEvents:(UIControlEventTouchUpInside)] subscribeNext:^(__kindof UIControl * _Nullable x) {
        NSLog(@"点击了登录按钮");
        //处理登录事件
        [command execute:@"账号密码"];
        //qqq
    }];
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,903评论 1 32
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 10,131评论 0 12
  • 在PCH文件中设置了一个全局颜色 修改状态栏样式 一 一个这样的登录注册界面该如何做呢?它又会涉及到哪些技术点呢?...
    Tuberose阅读 24,025评论 28 271
  • 挥别之后 再见 有风喘息与奔跑 有光迷乱而耀眼 我亮开嗓音 坐进你的影子 你嘲笑我歌里的春天 把它丢向不留缝隙的天...
    X邓瑜B阅读 1,693评论 1 0
  • 最近总想着自己要梳理一下知识架构,给自己学到的东西做一个分门别类。 之前不知道,越梳理越多杂,越多杂越惊慌...
    夏天吃西瓜啦阅读 3,034评论 0 0

友情链接更多精彩内容