将多个视图控制器共享的逻辑放在哪里

Where to put logic shared by multiple view controllers

我正在开发一个 iPhone 应用程序 (Objective-C),它的许多屏幕都具有条形码扫描功能。用户可以点击控件来识别不同的条形码并根据识别的条形码类型导航到不同的屏幕。大多数逻辑不依赖于他们从哪个屏幕启动扫描...因此,我不想在每个视图控制器中复制代码,但不确定它的最佳位置在哪里。它需要用户点击检测矩形,因此它确实需要能够处理这些事件。非常感谢!

你可以使用单例

class DataStore {
    static let sharedDataStore = DataStore()

    func scanBarcode() {
        //logic
    }
}

在另一个视图控制器中调用该函数

class viewController: UIViewController {

    let shared = DataStore.sharedDataStore

    override func viewDidLoad() {
        //calling the function
        shared.scanBarcode()
    }