Какие свойства UIViewController я должен установить в -initWithNibName:bundle: vs. -viewDidLoad?

Я понимаю, что я должен установить self.title в -initWithNibName:bundle:,

  1. Как насчет self.navigationItem.titleView?

    поскольку self.navigationItem.titleView кажется, используется только тогда, когда self.view загружен, я думаю, я должен, чтобы сохранить память, установить self.navigationItem.titleView в -viewDidLoad и ноль это в -viewDidUnload Например:

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.navigationItem.titleView = [[UIImageView alloc] initWithImage:
                                         [UIImage imageNamed:@"logo.png"]];
    }
    
    - (void)viewDidUnload {
        self.navigationItem.titleView = nil;
        [super viewDidUnload];
    }
    
  2. Как насчет self.navigationItem.backBarButtonItem?

1 ответ

  1. Кажется, работает нормально, чтобы установить self.navigationItem.titleView в -viewDidLoad и ноль это в -viewDidUnload,

  2. Вы должны установить self.navigationItem.backBarButtonItem в -initWithNibName:bundle потому что если вы нажимаете два контроллера представления без анимации -viewDidLoad не будет вызван для первого выдвинутого контроллера представления. Итак, если этот контроллер представления устанавливает self.navigationItem.backBarButtonItem в -viewDidLoad, на самом деле он не будет установлен, и кнопка "Назад" на втором контроллере представления будет просто по умолчанию использовать заголовок первого контроллера представления, как обычно.

Другие вопросы по тегам