hidesBackButton работает, но задний набор кнопок не работает

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

self.navigationItem.hidesBackButton=NO;

скрывает кнопку BackButton, но

[self.navigationController.navigationItem.backBarButtonItem setAction:@selector(performBackNav:)];

а также

[self.navigationItem.backBarButtonItem setAction:@selector(performBackNav:)];

сделать то же самое, что и раньше (возвращаясь к прецеденту ViewController). Ничего не меняется

-(void)performBackNav:(id)sender {
//Actions
[self.navigationController popViewControllerAnimated:NO];
}

Любые идеи, чтобы изменить действие backbarbuttonitem?

1 ответ

Решение

Вместо переопределения метода действия кнопки "Назад" по умолчанию создайте пользовательскую кнопку. это один из способов попробовать это

{
    UIButton *urButton = [UIButton buttonWithType:UIButtonTypeCustom];
    urButton.frame = urRequiredFrame;
    [urButton setImage:urImage forState:UIControlStateNormal];
    [urButton addTarget:self action:@selector(performBackNav:)
         forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *doneButton =[[UIBarButtonItem alloc] initWithCustomView:urButton];
    self.navigationItem.leftBarButtonItem=doneButton;
}


-(void)performBackNav:(id)sender {
//Actions
[self.navigationController popViewControllerAnimated:NO];
}
Другие вопросы по тегам