专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构

登录和注册按钮点击事件

  • 定义协议

    // 按钮点击协议
    // 需要继承NSObjectProtocol
    protocol HMVisitorViewDelegate: NSObjectProtocol {
      // 点击注册
      func vistorViewRegister()
    
      // 点击登录
      func vistorViewLogin()
    }
    
  • HMVisitorView 添加代理属性
    class HMVisitorView: UIView {
      // 按钮点击代理
      weak var vistorViewDelegate: HMVisitorViewDelegate?
    }
    
  • 按钮添加点击事件

    // 注册点击事件
    button.addTarget(self, action: #selector(registerClick), for: UIControlEvents.touchUpInside)
    
    // 登录点击事件
    button.addTarget(self, action: #selector(loginClick), for: UIControlEvents.touchUpInside)
    
  • 实现点击事件,在点击事件里面调用代理方法

    // MARK: - 点击事件
    func registerClick() {
      vistorViewDelegate?.vistorViewRegister()
    }
    
    func loginClick() {
      vistorViewDelegate?.vistorViewLogin()
    }
    
  • 设置 HMBaseViewController 成为 visitorView 的代理

    private func setupVisitorView() {
      // 使用访客视图
      self.view = visitorView
    
      // 判断当前是哪个控制器
      if self is HMHomeViewController {
          visitorView.startRotationAnimation()
      } else if self is HMMessageViewController {
          visitorView.setupVisitorInfo(imageName: "visitordiscover_image_message", message: "登录后,别人评论你的微博,发给你的消息,都会在这里收到通知")
      } else if self is HMDiscoveryViewController {
          visitorView.setupVisitorInfo(imageName: "visitordiscover_image_message", message: "登录后,最新、最热微博尽在掌握,不再会与实事潮流擦肩而过")
      } else if self is HMProfileViewController {
          visitorView.setupVisitorInfo(imageName: "visitordiscover_image_profile", message: "登录后,你的微博、相册、个人资料会显示在这里,展示给别人")
      }
    
      visitorView.vistorViewDelegate = self
    }
    
  • 使用extensionCZBaseTableViewController 实现 CZVistorViewDelegate

    // MARK: - CZBaseTableViewController 扩展,实现 CZVistorViewDelegate 协议
    // 扩展,和oc category类似, estension 可以实现协议, 方便代码统一管理
    extension HMBaseViewController: HMVisitorViewDelegate {
    
      // 点击注册
      func vistorViewRegister() {
          print("HMBaseViewController: vistorViewRegister")
      }
    
      // 点击登录
      func vistorViewLogin() {
          print("HMBaseViewController: vistorViewLogin")
      }
    }
    

results matching ""

    No results matching ""