Моя навигационная панель не показывает кнопку возврата, если предыдущий контроллер представления не имеет названия

Как сделать так, чтобы он показывал кнопку "Назад" с заголовком "Назад"? Это показывает отлично, если предыдущий контроллер представления имеет заголовок.

3 ответа

Решение

Вы можете установить свойство backBarButtonItem предыдущего viewController. Так что, если у вас есть один view-контроллер "A", и вы нажимаете viewController "B". Кнопка "Назад" будет кнопкой backBarButtonItem на контроллере вида "A".

Самое простое решение в viewDidLoad представления, которое собирается выдвинуть новое, сделать следующее:

UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backBarButton;
[backBarButton release]

Работает отлично, без вопросов.

Вы также можете попытаться установить заголовок, прежде чем нажать новый контроллер представления. Например:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  [self setTitle:@"back"];
  // Push new view controller...
}

а затем установите его обратно на @"" в вашем -viewWillAppear,

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