Swift 4-如何在Pods类中导入AppDelegate

时间:2018-08-13 22:20:01

标签: ios swift cocoapods

我正在尝试将此代码添加到cocoapods库中的视图控制器中

 public override func viewWillDisappear(_ animated: Bool) {
     (UIApplication.shared.delegate as! AppDelegate).restrictRotation = .portrait
}

但是出现了使用未声明类型的'AppDelegate'错误。.如何将我的项目文件(例如AppDelegate)导入到pod中?

1 个答案:

答案 0 :(得分:3)

一个Pod应该可以在不同的项目中重复使用,因此您不会在Pod中包含项目文件。

通过让pod定义一个协议,然后该协议将被项目App Delegate所采用,您应该能够实现自己的目标:

if(document.referrer.indexOf('/mobile') !== -1

那么你可以说

protocol RotationRestrictable {
    enum RotationRestriction {
        case .none
        case .portrait
        case .landscape
    }

    var restrictRotation: RotationRestriction
}

在您的应用程序委托中:

public override func viewWillDisappear(_ animated: Bool) {
    if let delegate = UIApplication.shared.delegate as? RotationRestrictable {
        delegate.restrictRotation = .portrait
    }
}