Насколько я понимаю, в документации SDK жизненный цикл UIViewController navigationItem привязан к самому контроллеру, а не к представлению контроллера. т.е. в реализации по умолчанию он создается по запросу и уничтожается с помощью контроллера представления — со всем содержимым, таким как элементы кнопок и titleView. Учитывая, что как элементы кнопок, так и titleView могут быть представлены экземплярами UIView, означает ли это, что после создания эти представления останутся в памяти до тех пор, пока контроллер не будет уничтожен и не проживет все предупреждения памяти?
В чем смысл такого дизайнерского решения? Считается ли влияние на использование памяти слишком незначительным, чтобы его беспокоить? Это действительно мало для приложения, которое везде использует настраиваемые кнопки/заголовки панели навигации?
Легко явно связать некоторые свойства navigationItem с жизненным циклом представления контроллера — например, установить titleView в -viewDidLoad и удалить его в -viewDidUnload (self.navigationItem.titleView = nil
). Но документация по свойству navigationItem предлагает избегать этого шаблона. Есть ли другие потенциальные проблемы, кроме данного примера с кнопкой «Назад»?