簡體   English   中英

出現視圖時,iOS導航欄標題的動態設置會在文本中產生省略號

[英]iOS Navigation Bar Title set dinamically is making a ellipsis in text when view appears

我試圖在導航欄中設置后退按鈕標題,就像這樣

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的原始標題。

效果很好,但是每次單擊“上一步”時我都會很快見效:導航欄的標題出現,前三個字母后接省略號(例如:“標題”將顯示為“山雀”。 ”),然后在完全顯示該視圖后,它會顯示整個標題,沒有任何問題。

這是出現視圖時發生的情況

這是視圖已經出現時的樣子

問題是...在正常情況下不會發生,因此我想這與我設置后退按鈕標題的解決方案有關。

問題是: 有沒有辦法避免這種影響? 我在錯誤的函數中調用self.title嗎?

我正在使用Xcode 8和iOS 10.0

我嘗試在自己的計算機上運行您的代碼,但沒有顯示相同的問題; 我認為您可能正在使用自定義視圖作為導航欄的標題,而您的self.backUpTitle位於導致省略號的自定義視圖內部。

一些建議:

  1. 如果只想以這種方式顯示“創建用戶”而不用省略號,則可能要刪除導航欄的所有自定義視圖,並像在代碼中一樣設置ViewController標題。

  2. 使用“ self.title”將更改您的ViewController的標題,請確保將ViewController嵌入到UIViewController中。 但是,如果您創建了導航欄,則將標題設置為:

    navigationBar.topItem.title = “Create User”

  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" } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM