Как я могу изменить кнопку назад на UINavigationControler - PullRequest
0 голосов
/ 04 ноября 2010

В представлении я хочу изменить его, поскольку у меня есть следующий код, но он не работает.

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    //Logout button
    UIBarButtonItem * logout = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(goBack)];
    logout.title = @"Logout";
    nav_delegate.navigationController.navigationItem.leftBarButtonItem = logout;
    [logout release];
}

Спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 04 ноября 2010

Реализация backBarButtonItem для контроллера суперпредставления, который использует pushViewController: subViewController.

Например, если вы выдвинули контроллер вида для его контроллера супервизора. Выход:

[self.navigationController pushViewController:subViewController animated:YES];

Затем вы должны были реализовать backBarButtonItem в супер-представлении, которое является представлением Logout, НЕ в выдвинутом subViewController .

Итак, чтобы реализовать backBarButtonItem, вы делаете это в режиме супер-просмотра Logout, например:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:logoutViewTitle style:UIBarButtonItemStyleBordered target:nil action:nil];

Вы можете сделать это в - (void) viewDidLoad для статического использования или в - (void) viewWillAppear: (BOOL) анимированный для динамического использования, для установки заголовка без выделения и инициализации.

Еще один совет: в конструкторе интерфейсов есть поле ввода для заголовка backBarButtonItem. Но если вы не вошли, вы должны выделить и инициализировать backBarButton с заголовком в файлах .m, как показано выше. Если вы ввели заголовок для статического использования, я думаю, что вы можете изменить его, просто используя:

[self.navigationItem.backBarButtonItem setTitle:logoutViewTitle];

Надеюсь, это помогло.

1 голос
/ 04 ноября 2010

Вот ответ. В контроллере вида:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"X";
    //Logout button
    UIBarButtonItem * logout = [[UIBarButtonItem alloc] initWithTitle:@"Logout" style: UIBarButtonItemStylePlain target:self action:@selector(goBack)];
    self.navigationItem.leftBarButtonItem = logout;
    [logout release];
}
1 голос
/ 04 ноября 2010

Установите backBarButtonItem на предыдущем контроллере вида (тот, к которому вы вернетесь, когда нажмете кнопку возврата).

...