Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Кнопка не отображается в элементе navigationBar

Автор вопроса: SeniorLeeОтветов: 3

Я создал проект с шаблоном приложения на основе навигации, немного поработал и запустил его.

Я ожидал, что если я коснусь ячейки, появится новый вид, и новый значок (кнопка возврата) также появится на элементе панели навигации.

Но по какой-то причине "кнопка назад" не добавляется автоматически. В чем может быть проблема??

Ниже мой код.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    // Navigation logic may go here -- for example, create and push another view controller.
    MessageView *detailViewController = [[MessageView alloc] initWithNibName:@"MessageView" bundle:nil];

    NSDictionary* aMessage = [m_tableData objectAtIndex:indexPath.row];
    detailViewController.m_message = [[NSDictionary alloc] initWithDictionary:aMessage];

    // Pass the selected object to the new view controller.
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];
}
  • Это представление (MessageView), которое вы вставили в навигационный контроллер? Вы можете нажать только UIViewController, но не UIView Nevin 23.02.2011

iphoneuinavigationcontroller

Ответы

Ответ 1 · рейтинг 7 · mackworth

Вероятно, вы не дали своему родительскому контроллеру заголовок (просто self.title = @"my name" в viewDidLoad или viewWillAppear). Это то, что по умолчанию заполняется кнопкой "Назад", поэтому, если вы не назовете это, вы не получите кнопку "Назад".

Ответ 2 · рейтинг 1 · Rajender Kumar

Вы говорите, что MessageView унаследован от UIView. Но я думаю, что если нет проблем с вставкой в ​​навигационный контроллер, то это будет подкласс UIViewController.

Есть несколько причин, по которым кнопка "Назад" не отображается:

1.) Как сказал Макворт, вы не указали ни одного заголовка, от которого вы отталкиваетесь.

2.) свойство кнопки "Назад" панели навигации установлено как скрытое.

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

Ответ 3 · рейтинг 1 · Ajay Sharma

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

После того, как вы установите заголовок панели навигации по умолчанию, она покажет вам кнопку "Назад".

Используйте его либо в ViewDidLoad, либо в ViewWillAppear.

self.navigationItem.title=@"Укажите здесь свой заголовок";

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы