Я создал проект с шаблоном приложения на основе навигации, немного поработал и запустил его.
Я ожидал, что если я коснусь ячейки, появится новый вид, и новый значок (кнопка возврата) также появится на элементе панели навигации.
Но по какой-то причине "кнопка назад" не добавляется автоматически. В чем может быть проблема??
Ниже мой код.
- (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];
}
Ответ 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=@"Укажите здесь свой заголовок";