2013-09-23 2 views
3

Я хочу обычай backBarButtonItem в navigationItem, вот мой кодПочему setBackBarButtonItem не работает в childViewController viewDIdLoad?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
                  style:UIBarButtonItemStylePlain 
                  target:nil 
                  action:nil]; 
    [[self navigationItem] setBackBarButtonItem:back]; 
} 

, но он не работал в то время как я использовал leftBarButtionItem может работать.

Я не знаю, может ли кто-нибудь дать мне ответ?

ответ

0

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

Причины ваша кнопка не работает является target: и action: параметров nil можно привязать их к popViewControllerAnimated: методу UINavigationController «s для достижения тех же действий, что и кнопки по умолчанию обратно.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
                style:UIBarButtonItemStylePlain 
                target:[self navigationController] 
                action:@selector(popViewControllerAnimated:) 
                ]; 
    [[self navigationItem] setBackBarButtonItem:back]; 

} 
0
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationItem.hidesBackButton = YES; 
    UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
                  style:UIBarButtonItemStylePlain 
                  target:nil 
                  action:nil]; 
    self.navigationItem.leftBarButtonItem = back; 
} 
+0

Это не предназначаться на кнопку «Назад» в контексте навигации контроллера, но это эквивалент перекрывая кнопку Назад, помещая простую Nav Bar кнопку на левой стороне , – alejandrormz

+0

@ karthika Как получить значок <перед словом «Назад»? – Brabbeldas

+0

[self.navigationItem комплектBackBarButtonItem: новыйBackButton]; –

1
- (void)viewDidLoad 
{ 
    [self.navigationItem setHidesBackButton:YES]; 

    UIBarButtonItem *cancelNavButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(dismissController)]; 
    [self.navigationItem setLeftBarButtonItem:cancelNavButton]; 
} 

- (void)dismissController 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
Смежные вопросы