Как перейти на другую страницу содержимого после вызова функции - PullRequest
1 голос
/ 03 августа 2020

У меня есть приложение с двумя вкладками в формах Xamarin (сторона iOS). Я хотел бы знать, как заставить мое приложение переходить на другую страницу содержимого после вызова функции. Позвольте мне показать вам, что я имею в виду в коде:

это две мои функции на моей странице содержимого:

 protected override async void OnAppearing()
        {
            base.OnAppearing();
            TakePhotoButton_Clicked();
        }

        async void TakePhotoButton_Clicked()
        {
            if (App.pictureTaken) return;
            App.pictureTaken = true;

            //Allows users to take pictures in the app
            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                DisplayAlert("No Camera", "Camera is not available.", "OK");
                return;
            }

            var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
                //Sets the properties of the photo file 
                SaveToAlbum = true,
                PhotoSize = PhotoSize.MaxWidthHeight,
                DefaultCamera = CameraDevice.Rear
            });

            if (file == null)
                return;
        }

После вызова TakePhotoButton_Clicked () я бы хотел заставить мое приложение перейдите на другую мою страницу содержимого.

в псевдокоде это будет выглядеть так:

NavigateTo (MyOtherContentPage);

Но я не уверен, как это будет работать или что-то в этом роде существуют. Есть предложения?

1 Ответ

1 голос
/ 04 августа 2020

Добро пожаловать в SO!

Если Root page из MainPage равно NavigationPage , например: MainPage = new NavigationPage (new Page1Xaml ());, вы можете используйте Navigation.PushAsync для перехода на другую страницу следующим образом:

async void OnNextPageButtonClicked (object sender, EventArgs e)
{
  await Navigation.PushAsync (new Page2Xaml ());
}

В противном случае, если Root страница является нормальной страницей, вы можете использовать метод упрощения модели для перехода на другую страницу как следуйте:

async void OnItemSelected (object sender, SelectedItemChangedEventArgs e)
{
    ...
    await Navigation.PushModalAsync (detailPage);
  }
}

Более подробную информацию можно найти в Выполнение навигации и Отправка страниц в модальный стек .

...