【问题标题】:How to navigate to a different content page after a function is called调用函数后如何导航到不同的内容页面
【发布时间】:2020-08-03 18:51:00
【问题描述】:

我有一个应用程序,它在 Xamarin 表单(iOS 端)中有 2 个选项卡。我想知道在调用函数后如何让我的应用导航到不同的内容页面。让我告诉你我在代码中的意思:

这是我的内容页面中的两个功能:

 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);

但我不确定这将如何工作或是否存在类似的东西。有什么建议吗?

【问题讨论】:

标签: ios xamarin xamarin.forms navigation content-pages


【解决方案1】:

欢迎来到 SO!

如果 MainPageRoot pageNavigationPage ,如:MainPage = new NavigationPage (new Page1Xaml ()); ,则可以使用Navigation.PushAsync 导航到另一个页面如下:

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

如果Root page是一个普通的Page,你可以使用model naivgation方法导航到另一个页面,如下:

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

更多信息可以参考Performing NavigationPushing Pages to the Modal Stack

【讨论】:

  • 这是有道理的!我确实遇到了一个问题。尽管它确实使用上面的代码导航到我的内容页面,但它不再显示我的标签。我希望我的用户能够点击相机的选项卡按钮,当他们完成使用相机时,控件返回到上一个选项卡。你知道我怎么能做到这一点吗?
  • 例如:在用户点击相机选项卡并完成拍照后,我有一个名为“上传”的选项卡和一个名为“相机”的选项卡,我需要控件返回到“上传”标签。
  • @izzyk Okey,很抱歉不理解您所说的tab。你的意思是tabTabbedPageTabItem 吗?您可以分享一个屏幕截图来解释这一点。
猜你喜欢
  • 1970-01-01
  • 2019-06-09
  • 2017-07-23
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 2019-10-27
  • 2011-07-13
  • 2016-06-11
相关资源
最近更新 更多