【问题标题】:How to override method once for all UIKIt如何为所有 UIKIt 覆盖一次方法
【发布时间】:2019-08-30 10:21:30
【问题描述】:

我想写一个基于 VIPER 架构的 iOS 应用程序,所以我的目标是从路由器获得 segue。我从路由器调用view.performSegue(withIdentifier: sender:),作为发件人,我关闭了返回给我的segue。

我想为UIKit 中的所有视图控制器覆盖方法prepare(for: sender:)

实际上我明白,我可以从所有具有该方法的类继承并覆盖它,但我想这样做一次,例如在协议中,然后在任何地方使用它。

有什么建议吗?

func prepare(for segue: UIStoryboardSegue, sender: Any?){
    if let closure = sender as? (UIStoryboardSegue) -> (){
        closure(segue)
    }
}

【问题讨论】:

    标签: swift4 viper-architecture


    【解决方案1】:

    您可以尝试创建一个 BasicViewController 来实现您的覆盖准备功能,并在创建另一个 viewControllers 时使用它。

    【讨论】:

      猜你喜欢
      • 2015-01-12
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多