【问题标题】:Setting navigationItem title delay issues设置 navigationItem 标题延迟问题
【发布时间】:2017-09-19 10:10:47
【问题描述】:

当将控制器推送到导航堆栈时,我执行:

self.navigationItem.title = "";

因为我不希望下一个视图在后退按钮上显示前一个控制器的名称。

当我回到那个控制器时,我会这样做:

override func viewWillAppear(_ animated: Bool) {
    self.navigationItem.title = "Title Of View";
    ...
}

标题设置得当,但滞后约 1 秒左右。我记得过去使用这种技术很长一段时间没有出现问题。设置标题的代码不在网络调用或类似的东西中..

关于可能导致此问题的任何想法?

【问题讨论】:

    标签: ios uiviewcontroller uinavigationcontroller


    【解决方案1】:

    为了隐藏后退按钮标题,您应该将空的 UIBarButtonItem 实例设置为 self.navigationItem.backBarButtonItem 在你推送新的视图控制器之后,就像这样:

    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .done, target: nil, action: nil)
    

    这样您就不必操作视图控制器的标题。

    【讨论】:

    • 这有点奇怪。假设控制器 A 和控制器 B。为控制器 B 添加代码什么也不做。为控制器 A 添加代码,然后推送控制器 B 就可以了。这让我很困惑,为什么我需要更改前一个控制器和当前控制器上的 UIBarButtonItem?
    • 事情是这样的,控制器A的backBarButtonItem显示在控制器B上。你不应该想到backBarButtonItem显示在它的navigationItem的控制器上,想它带你到那个控制器。
    • 我明白了,令人惊讶的是,这是有道理的。对不起,我对它的理解有限,谢谢:D
    猜你喜欢
    • 1970-01-01
    • 2013-12-12
    • 2011-01-14
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多