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?

Foi útil?

Solução

usar isso para esconder botão de volta

[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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top