Вопрос по xcode, uinavigationcontroller, uinavigationbar, ios – Заголовок панели навигации и название кнопки возврата совпадают?

5

Я создал один заголовок для панели навигации в своем проекте раскадровки, но при переходе к следующему контроллеру просмотра кнопка «Назад» отображает то же имя, что и предыдущий заголовок панели навигации (основная панель навигации). Могу ли я установить отдельные названия заголовка и кнопки возврата?

Я пробовал следующий код, но он не работает? Зачем?

 [email protected]"Recent Books";
[email protected]"Back";
Этот ответ не работает для меня Naveen
Пожалуйста, посмотрите на мой ответstackoverflow.com/questions/9871578/... Tendulkar

Ваш Ответ

5   ответов
2

Следующее должно решить вашу проблему

-(void)viewDidAppear:(BOOL)animated
{
    self.navigationController.navigationBar.backItem.title = @"back";
}

Вы также можете использовать этот синтаксис Objective C

[[self.navigationController.navigationBar backItem] setTitle:@"back"];
6

говорят, что вы нажимаете на свой viewcontroller A -> B

В viewcontroller A попробуйте добавить этот код вviewDidLoad метод

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

Так ты увидишь своюНазад» кнопка в контроллере вида B

1

один из самых простых способов, которые я нашел до сих пор:

Создайте пользовательскую кнопку возврата и добавьте ее в свойство элемента левой кнопки панели навигации:

- (void)viewDidLoad
{
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *backBtnImage = [UIImage imageNamed:@"Backnavigation.png"]  ; // Here set the back button image
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside];
backBtn.frame = CGRectMake(0, 0, 24, 24);
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;
self.navigationItem.leftBarButtonItem = backButton;
}


//Handle the Back Button Event
- (void) handleBack:(id)sender
{
    // do your custom handler code here
    [self.navigationController popViewControllerAnimated:YES];
}

Кроме того, делая так, вы неМне нужно каждый раз менять заголовок NavigationBar.

Вот кнопка Назад для вашей справки: 

19

UINavigationItem Class Reference "

Когда этот элемент навигации находится непосредственно под верхним элементом в стеке, контроллер навигации выводит кнопку возврата для панели навигации из этого элемента навигации. [...] Если вы хотите указать собственное изображение или заголовок для кнопки «Назад», вы можете вместо этого назначить этому элементу пользовательский элемент панели кнопок (с вашим пользовательским заголовком или изображением). "

Так что попробуйте это в вашем первом VC, откуда вы толкаете другие VC

[email protected]"Recent Books";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Back"
                                   style:UIBarButtonItemStylePlain
                                   target:nil
                                   action:nil];
self.navigationItem.backBarButtonItem=backButton;
@Bhargavi ... Не техническая ошибка .. теперь все в порядке Naveen
У меня есть два BarButton, настроенные на мой первый вид, слева "Информация" и право на "Настройки», И все же мне пришлось установить имя для BackButton в первом представлении. В моем дереве компонентов теперь три BarButton, но когда я запускаю приложение, все работает нормально. Просто не имеет смысла. Douglas Nassif Roma Junior
0

viewWillAppear (анимированные: Bool) метод контроллера представления, в котором вы хотите установить заголовок backButton по вашему выбору:self.navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "Back Title", style: .plain, target: nil, action: nil)

Похожие вопросы