У меня был родительский контроллер представления с очень длинным заголовком. Это привело к тому, что текст кнопки «назад» превратился в заголовок дочернего контроллера представления.
После того, как я попробовал несколько разных решений, это то, что я в итоге сделал (расширяя подход @ john.k.doe):
Используя Xcode 7.2, Swift 2
- В раскадровке добавьте объект
Navigation Itemв сцену родительского представления (не дочерний виртуальный канал).

- На
Attributes Inspectorвашем новом Navigation Item, введите spaceсимвол в Back Buttonполе. Подробнее об этом позже.


- В родительском контроллере представления, добавьте следующий код:
фрагмент кода:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.destinationViewController {
case is ChildViewController:
navigationItem.backBarButtonItem?.title = ""
default:
navigationItem.backBarButtonItem?.title = "Full Parent Title"
}
}
Объяснение:
Кнопка «Назад» относится к родительскому контроллеру представления. Он Navigation Itemдает вам указатель на кнопку «Назад», поэтому вы можете установить заголовок в коде или в раскадровке.
Примечание:
Если оставить Navigation Item Back Buttonтекст в качестве пустой строки по умолчанию, заголовок кнопки «Назад» станет «Назад».
Другие подходы работают, зачем использовать этот?
Несмотря на то, что на дочернем контроллере представления можно переопределить заголовок кнопки «назад», было трудно получить ручку до тех пор, пока она не вспыхнула на экране.
Некоторые из подходов создают новую кнопку возврата и переопределяют существующую. Я уверен, что это работает, и, вероятно, необходимо в некоторых случаях использования. Но я предпочитаю использовать существующие API, когда это возможно.
Смена titleродительского контроллера представления - самое быстрое решение для некоторых ситуаций. Однако это меняет родительский заголовок, поэтому вам нужно управлять состоянием. Вещи также становятся беспорядочными, Tab Bar Controllerпотому что изменения названия вызывают побочные эффекты с Tab Bar Itemназваниями.