xamarin - 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
我不知道这是什么意思。我已经搜索过,很多人在几种情况下都遇到了这个问题。但我没有像我的场景一样。如何解决这个问题?感谢任何帮助。
解决方案
推荐阅读
- angular - 如何将组件显示为全屏?
- python - 如何终止已标记为失败的气流 dag 运行?
- java - 将 JSON 数组解析为对象(嵌套 JSON)
- python - 用字符串和数字替换 numpy 数组的现有值
- node.js - 在条件下从数组中取消设置 Mongodb
- spring-boot - ElasticSearchRepository 空查询不工作
- mysql - 发票年份格式YYYY转YY
- javascript - 使用 jQuery 基于选择动态更改表单动作
- r - 如何更改 tm_bubble (Tmap) 的图例
- ios - IOS 推送通知不适用于使用 firebase 和 react-native-push-notifications 进行本机反应