首页 > 解决方案 > Navigation.RemovePage 上的 Xamarin.forms ios MonoTouchException

问题描述

在我的 xamarin.forms ios 应用程序中,我有 4 个 ContentPages 和 1 个 Popup(Rg.Plugin)

我的导航是这样的

第 1 页 --> 第 2 页 --> 第 3 页 --> 第 4 页 --> 弹出窗口

我想通过删除页面(2、3、4 和弹出窗口)从弹出窗口中的按钮单击导航到第 1 页。

我是这样做的。

  private  void OK_Clicked(object sender, EventArgs e)
        {
            try
            {
                var countPagesToRemove = 3;
                var mainPage = (Application.Current.MainPage as NavigationPage);
                for (var i = 1; i < countPagesToRemove; i++)
                {

                    mainPage.Navigation.RemovePage(mainPage.Navigation.NavigationStack[mainPage.Navigation.NavigationStack.Count - 2]);
                }
                 Navigation.PopAsync();
                 Task.Delay(5);
                 PopupNavigation.Instance.PopAsync();
            }

            catch (Exception ex)
            {
                 DisplayAlert("Result", ex.Message, "ok");
            }
        }

这在 Android 上完美运行。在 ios 中它抛出了这个异常。

Foundation.MonoTouchException
  Message=Objective-C exception thrown.  Name: CALayerInvalidGeometry Reason: CALayer bounds contains NaN: [0 0; 0 nan]
Native stack trace:

  Source=Xamarin.iOS
  StackTrace:
  at ObjCRuntime.Runtime.ThrowNSException (System.IntPtr ns_exception) [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/ObjCRuntime/Runtime.cs:406 
  at ObjCRuntime.Runtime.throw_ns_exception (System.IntPtr exc) [0x00000] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/runtime/Delegates.generated.cs:128 
  at (wrapper native-to-managed) ObjCRuntime.Runtime.throw_ns_exception(intptr)
  at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
  at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/UIKit/UIApplication.cs:86 
  at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0000e] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.14.1.39/src/Xamarin.iOS/UIKit/UIApplication.cs:65 

我不知道这是什么意思。我已经搜索过,很多人在几种情况下都遇到了这个问题。但我没有像我的场景一样。如何解决这个问题?感谢任何帮助。

标签: xamarinxamarin.formsxamarin.ios

解决方案


推荐阅读