Existe uma maneira melhor para esconder a backBarButtonItem do que isso?
-
22-08-2019 - |
Pergunta
Eu tenho uma maneira de esconder o botão voltar usado pelo controlador de navegação. É definido pelo controlador anterior, não a gerir o ponto de vista atual, e que o torna difícil de chegar a. Eu precisava fazer isso no modo de edição para que eu pudesse impedir que o usuário navegar longe da tela.
if(self.editing) {
// Get rid of the back button
UIView *emptyView = [[UIView alloc] init];;
UIBarButtonItem *emptyButton = [[[UIBarButtonItem alloc] initWithCustomView:emptyView] autorelease];
[self.navigationItem setLeftBarButtonItem:emptyButton animated:YES];
} else {
// Restore the back button
[self.navigationItem setLeftBarButtonItem:nil animated:YES];
}
Existe uma maneira melhor de fazer isso?
Solução
usar isso para esconder botão de volta ??p>
[self.navigationItem setHidesBackButton:YES]
usar isso para mostrar botão voltar
[self.navigationItem setHidesBackButton:NO]
Outras dicas
Aqui está o método que eu uso no meu controlador de vista para mostrar e ocultar o botão de volta quando a edição é ativado e desativado:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
if (editing) {
// Disable the back button
[self.navigationItem setHidesBackButton:YES animated:YES];
}
else {
// Enable the back button
[self.navigationItem setHidesBackButton:NO animated:YES];
}
[super setEditing:editing animated:animated];
}
Faça uma tomada com forte (não fraco como padrão) do botão da barra do storyboard para o seu controlador de exibição. O objetivo é não perder a referência quando você definir o botão da barra de esquerda / direita para zero.