Xamarin.forms ios MonoTouchException для Navigation.RemovePage - PullRequest
0 голосов
/ 20 апреля 2020

В моем приложении xamarin.forms ios у меня есть 4 ContentPages и 1 Popup (Rg.Plugin)

Моя навигация выглядит так

Страница 1 -> Страница 2 - > Страница 3 -> Страница 4 -> Всплывающее окно

Я хочу перейти на страницу 1 одним нажатием кнопки во всплывающем окне, удалив страницы (2,3,4 и Всплывающее окно).

Я сделал это так.

  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 

Я понятия не имею, что это делает жадный. Я искал, и многие люди сталкивались с этой проблемой в нескольких ситуациях. Но мне не понравился мой scenerio. Как решить эту проблему? Любая помощь приветствуется.

...