Заголовок кнопки возврата UINavigationController всегда показывает «Назад»

#ios #uinavigationcontroller #back #uinavigationitem

#iOS #uinavigationcontroller #Назад #элемент uinavigationitem #uinavigationitem

Вопрос:

Я разрабатываю IOS приложение. Я использую навигационный контроллер. Если я нажимаю на следующую страницу, заголовок кнопки возврата не отображается на предыдущей странице в IOS 7. Заголовок кнопки возврата всегда «Назад» в IOS 7. Я установил заголовки всех страниц в viewWillAppear , viewDidload как показано ниже. Но это не работает.

 self.navigationItem.title=@"Previous Page Title";
self.title  = @"Previous Page Title";
  

Что я могу сделать, чтобы заголовок кнопки «Назад» совпадал с предыдущим заголовком страницы в IOS 7

Спасибо

Ответ №1:

Если заголовок большой, кнопка возврата показывает только «Назад».Попробуйте использовать короткие заголовки, например

 self.title = @"Test";
  

если вам нужен длинный заголовок, выберите пользовательскую кнопку возврата.

Комментарии:

1. спасибо тебе, очень, очень много. все в порядке 🙂

2. И если заголовок слишком большой, он будет отображать только символ возврата (<)

Ответ №2:

В iOS 7 длина кнопки возврата ограничена (я думаю, до 11 символов). Вы можете установить пользовательский «заголовок кнопки возврата», подобный этому, например, в viewDidAppear в контроллере просмотра с длинным заголовком (не в текущем контроллере просмотра!):

 self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back Title"
                                                                         style:UIBarButtonItemStylePlain                                                                               
                                                                        target:nil
                                                                        action:nil];
  

Ответ №3:

Если вы хотите принудительно всегда иметь кнопку возврата, но при этом позволить системе создать ее за вас (будет обрабатывать локализацию «Назад», сокращать кнопку до одного «<«, Если текущее название действительно длинное и т.д.), Тогда Просто используйте абсурдно длинное название кнопки возврата:

 self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"                                                                                               really long never shown title"
                                                                         style:UIBarButtonItemStylePlain                                                                               
                                                                        target:nil
                                                                        action:nil];
  

Ответ №4:

Попробуйте этот код:

 [[UIBarButtonItem alloc] initWithTitle:@"Your Title Here"
                         style:UIBarButtonItemStylePlain                                                                               
                         target:nil action:nil];
  

Или вы можете установить изображение для кнопки следующим образом:

 UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"arrow.png"] style:UIBarButtonItemStylePlain target:self action:@selector(back:)];

self.navigationItem.leftBarButtonItem = barBtn;
  

И метод @selector:

 -(void)back:(id)sender{
  [self.navigationController popViewControllerAnimated:YES];
}