Невозможно заставить кнопку Back появляться в потоке UINavigationController. Я просто хочу, чтобы он автоматически вызывал всплывающее окно текущего контроллера, чтобы вернуться к родителю.
Я немного запутался в том, что минимум необходим для того, чтобы получить кнопку автоматического возврата (я имею в виду кнопку с названием родительского контроллера и кнопку со стрелкой, указывающей назад влево), и что вам нужно сделать, чтобы сделать что-то еще. Я просто ищу первое на этом этапе.
@implementation AppointmentListController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Detailed View";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
}
Код для доступа к этому представлению (то есть код в родительском контроллере):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
AppointmentListController *appointmentListController = [[AppointmentListController alloc] initWithNibName:@"AppointmentListController" bundle:nil];
[ [self navigationController] pushViewController:appointmentListController animated:YES];
[appointmentListController release];
}
РЕДАКТИРОВАТЬ: PS с кодом выше, я на самом деле не вижу никакой кнопки вообще появляются слева.
EDIT2: Дэвид, я попробовал кнопку следующего кода кнопки в RootViewController (и вытащил его из AppointmentListController), однако он все равно не отображает какую-либо кнопку возврата?
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
EDIT3: David - Работал фактически со следующим кодом, за исключением того, что текст был «назад», а не заголовок родительского контроллера, как я после - попытался удалить строку .title =, но тогда кнопка не появилась.
// create a custom navigation bar button and set it to always say "Back"
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
temporaryBarButtonItem.title = @"Back";
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
[temporaryBarButtonItem release];
EDIT4 - плохо - я не установил заголовок родительского контроллера, так что я думаю, что в этом случае он вообще не пытается, но нажимает кнопку «назад», поэтому добавляю «self.title = @« Views » ;» к родительскому контроллеру исправили вещи (и убрали строку, где я вручную ставил тайтл кнопки назад)
EDIT5 - для тех, кто был сбит с толку, как я - поэтому, в конце концов, вам вообще не нужен какой-либо код настройки backBarButtonItem в родительском контроллере - просто нужно было убедиться, что у родительского контроллера установлен «заголовок» и тогда кажется, что все работает автоматически - дох