【问题标题】:C# Xamarin.Forms ios Navigation.PushAsync not working properlyC# Xamarin.Forms ios Navigation.PushAsync 无法正常工作
【发布时间】:2021-07-07 12:41:15
【问题描述】:

我有 Android 和 iOS 的 xamrin.forms 项目。我只有简单的 2 页,我从中调用一个。在 android 上一切正常,但在 iOS 上,任何表单调用(navigation.PushAsync,DisplayAlert,...)都无法正常工作(什么都不做),直到我将应用程序置于睡眠状态(将其置于后台)和然后当我重新加载它时,一切都开始完美运行。

这就是我在 App.xaml.cs 中创建第一页的方式

var page = new NavigationPage(new FirstPage());
MainPage = page;

我的第一页的按钮命令调用这个:

FormsNavigation.PushAsync(secondPage, true);

我已经尝试将 Push 包装到 Device.BeginInvokeOnMainThread 但没有结果。

【问题讨论】:

    标签: c# xamarin xamarin.forms xamarin.ios


    【解决方案1】:

    在 Xamarin.Forms 中,使用 NavigationPage 导航到 ContentPage 时,请使用 await Navigation.PushAsync

    而且,由于所有 UI 动画都必须在主 UI 线程上调用,我建议将其包装为 Device.InvokeOnMainThreadAsync

    async Task NavigateToSecondPage()
    {
        var secondPage = new SecondPage();
        await Device.InvokeOnMainThreadAsync(() => Navigation.PushAsync(secondPage, true));    
    }
    

    【讨论】:

    • 在我使用这种方法后,它对我有用,谢谢。
    • 太棒了!感谢您的确认,@jsoch!
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2020-08-01
    相关资源
    最近更新 更多