【问题标题】:overriding viewSafeAreaInsetsDidChange needs super to be called?覆盖 viewSafeAreaInsetsDidChange 需要调用 super 吗?
【发布时间】:2017-10-05 15:18:20
【问题描述】:

如果我覆盖 UIViewController 的函数 viewSafeAreaInsetsDidChange 是否需要调用 super?

override func viewSafeAreaInsetsDidChange() {
    super.viewSafeAreaInsetsDidChange()
    // do my stuff
}

我知道,如果您覆盖 func viewWillAppear(_ animated: Bool) 并且您没有在内部调用 super,您的应用程序可能会出现异常行为。事实上,苹果公司说你必须在某个时候打电话给super。我想这里不是这样,这就是我想确认的!

【问题讨论】:

    标签: ios ios11 safearealayoutguide


    【解决方案1】:

    这不是必需的,但通常认为最好的做法是在被覆盖的方法上调用 super,除非有明确的理由不这样做。

    如果您决定将来您的视图控制器应该从自定义的UIViewController 子类继承,则无需进行任何代码更改即可在每个子类中运行超类的实现。

    【讨论】:

    • 我知道这样做是最好的做法,但是如果您覆盖 func viewWillAppear(_ animated: Bool) 并且您没有在内部调用 super,您的应用程序可能会出现异常行为。事实上,苹果公司说你必须在某个时候打电话给super。 我想这里不是这样,这就是我想确认的! :)
    猜你喜欢
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多