gpt4 book ai didi

iOS 导航栏标题动态设置在 View 出现时在文本中制作省略号

转载 作者:行者123 更新时间:2023-11-28 16:04:40 27 4
gpt4 key购买 nike

我试图在导航栏中设置后退按钮标题,像这样

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.title = self.backUpTitle
}

override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.title = "Back"
}

其中 self.backUpTitle 具有当前 ViewController 的原始标题。

效果很好,但每次单击“后退”时都会产生快速效果:导航栏的标题显示为前三个字母后跟省略号(例如:“标题”将显示为“Tit..."), View 完全显示后,它显示了整个标题,没有任何问题。

This is what happens when view is appearing

This is what looks like when the view has already appeared

事情是......它不会在正常情况下发生,所以我想这与我设置后退按钮标题的解决方案有关。

问题是:有办法避免这种影响吗?我是不是在错误的函数中调用了 self.title

最佳答案

我正在使用 Xcode 8 和 iOS 10.0

我试过在我自己的机器上运行你的代码,但没有出现同样的问题;我认为您可能正在为导航栏的标题使用自定义 View ,而您的 self.backUpTitle 位于导致省略号的自定义 View 内。

一些建议:

  1. 如果您只想以这种方式显示“创建用户”而不带省略号,您可能需要删除导航栏的所有自定义 View ,并像您在代码中所做的那样设置 ViewController 标题。

  2. 使用“self.title”将更改您的 ViewController 的标题,确保您的 ViewController 已嵌入到 UIViewController 中。但是,如果您创建了导航栏,则应将标题设置为:

    navigationBar.topItem.title = “创建用户”

  3. 重申一下,这就是我的代码在嵌入 UINavigationController 的 ViewController 下的样子(看起来像你的代码):

    var backUpTitle: String!

    override func viewDidLoad() {
    backUpTitle = "Create User"
    }
    override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.title = self.backUpTitle
    }

    override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    self.title = "Back"
    }

关于iOS 导航栏标题动态设置在 View 出现时在文本中制作省略号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40474269/

27 4 0