2012-06-04 6 views
1

У меня есть этот код. Он может добавить кнопку редактирования в навигационную панель, но кнопка «Назад» все еще существует, но она становится безответственной.Как удалить кнопку возврата с панели навигации

UIBarButtonItem *editButton = [[UIBarButtonItem alloc] 
           initWithTitle:@"Edit"            
           style:UIBarButtonItemStyleBordered 
           target:nil 
           action:nil]; 
[[self.navigationController.navigationBar.items objectAtIndex:1] setRightBarButtonItem:editButton]; 

[[self.navigationController.navigationBar.items objectAtIndex:1]setHidesBackButton:YES]; 

ответ

5

просто и коротко:

self.navigationItem.backBarButtonItem = nil; 

или

self.navigationItem.leftBarButtonItem = nil; 
+1

не работает ... :(кнопка все еще существуют и unclickable ... – Radislav

+0

может NSLog в self.navigationItem.backBarButtonItem – CarlJ

+0

идентификатор, но = [[само. navigationController.navigationBar.items objectAtIndex: 1] backBarButtonItem] возвращает null указатель ... :( – Radislav

1

Любой из них будет работать

self.navigationItem.leftBarButtonItem = nil; 

или

self.navigationItem.backBarButtonItem = nil; 
+1

echo ........... –

+0

Не работает ... :(Кнопка все еще существует и unclickable ... – Radislav

3

Вы также можете использовать

Objective-C:

self.navigationItem.hidesBackButton = YES; 

Swift:

navigationItem.hidesBackButton = true 
+0

Я пробовал. Он не работает. Он просто делает мою кнопку незаметной ... – Radislav

6

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

myNextViewController.navigationItem.hidesBackButton = YES; 
[self.navigationController pushViewController:myNextViewController animated:YES]; 
+0

Да. Делать это до того, как будет нажат viewController, это правильный путь. – SwiftArchitect

1

Это старое, но после прочтения об этом сегодня в ответ:

self.navigationItem.hidesBackButton = YES; 

правильно, но неполно, это должно быть сделано в методе последующего жизненного цикла, то viewDidLoad, иначе бросить его в viewWillApper или что-то позже, и он будет работать

- (void)viewWillAppear:(BOOL)animated{ 
    self.navigationItem.hidesBackButton = YES; 
} 

Надеюсь, что это помогает кто-то смотрит на старый пост, как я сделал сегодня

Смежные вопросы