Нежелательная кнопка «Изменить» на панели навигации?

У меня есть следующий код в моем приложении для отображения модального представления:

InfoTableViewController *infoTableViewController = [[[InfoTableViewController alloc] initWithNibName:nil bundle:nil] autorelease];
infoTableViewController.title = @"Pirateometer";
infoTableViewController.navigationItem.rightBarButtonItem =
    [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
        target:self action:@selector(dismissInfo)] autorelease];

navController = [[UINavigationController alloc] initWithRootViewController:infoTableViewController];
[self presentModalViewController:navController animated:YES];
[navController retain];

Однако, когда я запускаю, вместо кнопки «Готово» справа от панели навигации у меня есть кнопка «Изменить». Если я изменю .rightBarButton на .leftBarButton, моя кнопка «Готово» появится слева, как и ожидалось, но кнопка «Редактировать» снова появится справа.

Должен ли я специально удалить эту нежелательную кнопку «Редактировать» в коде, или я делаю что-то не так, из-за чего она появляется в первую очередь? Если мне нужно удалить его, как мне это сделать?


person Sean R    schedule 10.07.2009    source источник


Ответы (1)


Убедитесь, что в методе -viewDidLoad InfoTableViewController вы не устанавливаете правую кнопку для кнопки редактирования.

В коде заглушки подкласса UITableViewController по умолчанию есть закомментированная строка, которая делает это. Возможно, вы случайно раскомментировали его?

Установка его в -viewDidLoad будет выполняться после того, как вы уже установили его в своем включенном здесь коде, поскольку метод не запускается до тех пор, пока viewController не будет фактически загружен (т.е. когда вы представляете его модально).

person jbrennan    schedule 10.07.2009
comment
Ах, именно в этом была проблема. Не могу поверить, что я этого не видел! Большое спасибо. - person Sean R; 12.07.2009