2016-11-07 9 views
0

Я пытался установить заголовок кнопки назад в панели навигации, как этотIOS Панель навигации Название набор динамически делает многоточие в тексте, когда вид появляется

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.

Это работает очень хорошо, но я получаю быстрый эффект каждый раз, когда я нажимаю «Назад»: заголовок панели навигации появляется с тремя первыми буквами, за которыми следует эллипсис (например: «Название» будет отображаться как «Тит ...»), и после того, как представление полностью появится, он без всяких проблем показывает весь заголовок.

This is what happens when view is appearing

This is what looks like when the view has already appeared

Дело в том, ... это не происходит в обычном случае, так что я предполагаю, что это связано с моим решением о настройке Назад Кнопка Title.

Вопрос: есть ли способ избежать этого эффекта? Я вызываю self.title в неправильной функции?

ответ

1

Я использую Xcode 8 и IOS 10,0

Я попытался запустить свой код на моей машине, и я не показывает ту же проблему; Я думаю, вы можете использовать пользовательские представления для заголовка панели навигации, а ваш self.backUpTitle находится внутри настраиваемого представления, которое вызывает многоточие.

Некоторые предложения:

  1. Если вы просто хотите, чтобы показать «Создать пользователя», что путь без многоточие, вы можете удалить все пользовательские виды для панели навигации и просто установить ViewController название вроде того, что вы делаете в своем коде.

  2. Использование «self.title» изменит название вашего ViewController, убедитесь, что ваш ViewController встроен в UIViewController. Тем не менее, если вы создали навигационную панель, установив название должно быть:

    navigationBar.topItem.title = “Create User”

  3. Просто повторим, это то, что мой код выглядит следующим образом (который выглядит, как у вас) под ViewController, который встроен в UINavigationController:

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

Что вы имеете в виду об использовании пользовательских представлений для названия? Я фактически использую собственный UINavigationController и не коснулся навигационной панели, просто изменил заголовок ViewController. Я пробовал все ваши предложения, но не повезло! :( – cesrafa

 Смежные вопросы

  • Нет связанных вопросов^_^