Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao disparar um botao de voltar

Boa noite, estou tendo um erro ao tentar fechar a pagina e retornar para a anterior.

fazendo a chamada na pagina ButtonPage.cs:

 protected override async void OnAppearing()
        {
            if (Settings.CPFSettings == "")
            {
               await this.Navigation.PushAsync(new CPFPage());
            }
        }

ao realizar o clique de um botao quero retornar a pagina e uso:

if (CPFValido(entryCPF.Text))
            {
                Settings.CPFSettings = entryCPF.Text;

                            await Navigation.PopAsync();
            }

porem quando executa a linha "await Navigation.PopAsync();" o app da um erro e fecha. O erro é: Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index ocorreu.

2 respostas

Oi João, tudo bem?

Ainda não tinha visto esse tipo de erro ocorrer no método PopAsync(). Você pode substituir esta linha:

await Navigation.PopAsync();

por este bloco de código:

if (Navigation.NavigationStack.Count > 0)
{
    await Navigation.PopAsync();
}

Isso evita a tentativa de "desempilhamento" da última página navegada, quando você já está na página inicial.

solução!

eu consegui meio que resolver mudando a tela inicial para a CPFPage. Porem não é o ideal para mim, testei do modo como vc falou, porem mantem o erro. Mas obrigado