ios - 如何一次将更改应用于多个 View Controller ?

标签 ios xcode swift

(例如)一次在多个 View Controller 中包含一行的最佳方法是什么(例如,在每个 VC 中的 ViewDidLoad 下包含一行代码)?

我只是在寻找一种比在 10 个不同的 VC 中复制粘贴更有效的方法

最佳答案

继承将帮助您:

class BaseViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // your settings for all view controllers here:
        self.view.backgroundColor = UIColor.lightGrayColor()
    }
}

class HomeViewController: BaseViewController {
    override func viewDidLoad() {
        super.viewDidLoad() // call code from BaseViewController.viewDidLoad()
    }
}

class ChatViewController: BaseViewController {
    override func viewDidLoad() {
        super.viewDidLoad() // call code from BaseViewController.viewDidLoad()
    }
}

class ProfileViewController: BaseViewController {
    override func viewDidLoad() {
        super.viewDidLoad() // call code from BaseViewController.viewDidLoad()
    }
}

另一种选择是 Swift 扩展:

extension UIViewController {
    func configureView() {
        self.view.backgroundColor = UIColor.lightGrayColor()
    }
}

class HomeViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        configureView()
    }
}

class ChatViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        configureView()
    }
}

class ProfileViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        configureView()
    }
}

更多关于 InheritanceExtensions在 Swift 书中

关于ios - 如何一次将更改应用于多个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124364/

相关文章:

ios - Xcode Google 使用 Firebase 登录

ios - UIView 背景色比 UICollectionView 背景色深

ios - 更新购物车中的产品数量(而非数量) - Shopify Mobile Buy SDK

ios - 使用 AFNetworking 2.0 + NSProgress + Custom ProgressView 获取下载进度

ios - 为所选文本添加 Action

ios - 错误的 "Use of undeclared identifier ' {IDENTIFIER }'"

ios - XCTest,加载测试包失败。测试启动时崩溃

swift - 使用 Core Data 获取一对多关系

iphone - 导航栏上的自定义 UIBarButtonItem

objective-c - 如何识别从左到右的滑动 Action ?