美文网首页iOS常用
iOS低耦合实现游客登陆

iOS低耦合实现游客登陆

作者: Jack小麻雀_ | 来源:发表于2021-08-09 16:19 被阅读0次

demo中包含两个功能,1.用户登陆;2.查看用户订单;
未登录时点击OrderList需要先登陆,成功登录后无需额外操作可直接进入订单列表;已登录用户点击OrderList可以直接进入订单列表;
流程图如下


流程图

外部使用代码

[JKVisterChecker addToDoThingsAfterLogin:^{
        //这里添加登录后需要做的事情
        JKListViewController *vc = [[JKListViewController alloc] init];
        [self.navigationController pushViewController:vc animated:YES];
 }];

//addToDoThingsAfterLogin内部的实现
+ (void)addToDoThingsAfterLogin:(void (^)(void))afterLogin{
    //1.获取用户信息,根据自己的需求来
    JKUser *user = [[JKUserManager sharedUserManager] currentUser];
    if (!user) {
        //2-1-1 需要登陆的情况
        JKLoginViewController *vc = [[JKLoginViewController alloc] init];
        vc.modalPresentationStyle = UIModalPresentationFullScreen;
        vc.loginCallback = ^(BOOL loginSuccess) {
            if (loginSuccess) {
                //2-1-2 成功登录后调用afterLogin(),外部继续登录后需要做的事情,例如进入OrderList
                if (afterLogin) {
                    afterLogin();
                }
            }
        };
        UIWindow *window = [[UIApplication sharedApplication].windows firstObject];
        [window.rootViewController presentViewController:vc animated:YES completion:NULL];
    }else{
        //2-2-1 用户已经登陆,外部直接执行后续任务
        if (afterLogin) {
            afterLogin();
        }
    }
}

整个流程个人认为设计的是比较巧妙的,哈哈,自恋一下,demo在这里https://gitee.com/Jack_1993/vistor-demo

相关文章

  • iOS低耦合实现游客登陆

    demo中包含两个功能,1.用户登陆;2.查看用户订单;未登录时点击OrderList需要先登陆,成功登录后无需额...

  • 玩转iOS开发:打造一个低耦合可复用的《TableViewCon

    玩转iOS开发:打造一个低耦合可复用的《TableViewController》 玩转iOS开发:打造一个低耦合可...

  • 委托、通知传值的用法与区别

    低耦合性是良好程序的特性。低耦合性程序可读性和可维护性比较好。Cocoa中的委托、通知功能可以使低耦合性更易实现,...

  • iOS 关于低耦合封装

    关于低耦合封装 要探讨低耦合封装,就必须先简单说说对封装的理解。 什么是封装?封装简单的说就是用特定的代码框架将某...

  • iOS Router原理篇

    前言: iOS强调模块化、组件化,讲究模块内高内聚,模块间低耦合。那么模块与模块之间的低耦合,就要求模块间的通信要...

  • cocoapod管理文件

    1.前言 随着项目变得越来越大,我们的工程需要进行拆分和解耦。在iOS中,为了实现高内聚低耦合,模块之间完全解耦不...

  • [JAVA] Java面向对象三大特征:封装、继承、多态

    高内聚和低耦合 面向对象的最终目的是要构建强健、安全、高效的项目,也就是要实现项目的高内聚和低耦合: 高内聚:把该...

  • iOS 内购的坑

    内购的坑:1、设计内购订单状态:游客购买(未充值到账户)、游客购买(已充值到账户)、登录用户购买2、实现游客未登陆...

  • iOS自定义cell中按钮的点击事件响应方法

    实现思路:通过代理实现 优点:代码简洁,耦合性低,操作灵活(纯代码实现) 实现方法: 1:在自定义的cell.h文...

  • 【10/30】关于存储

    das,扩展性查,资源利用率低,管理困难,各厂商异构,维护升级成本高,紧耦合。 san,实现高速转发,松耦合,遵循...

网友评论

    本文标题:iOS低耦合实现游客登陆

    本文链接:https://www.haomeiwen.com/subject/lmbzvltx.html