我使用Xamarin开发的iOS应用程序导航存在问题。
在我的应用程序中的任何一个视图中,当我至少使用一次后退按钮并弹出一个视图控制器时,我可能不得不在我的主类上处理这个System.InvalidCastException:
Unable to cast object of type 'App.iOS.UI.PhotoTaker.PhotoTakerViewController' (Objective-C type: 'WorkZoneSelectorViewController') to type 'App.iOS.UI.WorkZoneSelector.WorkZoneSelectorViewController'.
Additional information:
Selector: viewDidLoad
Method: App.iOS.UI.WorkZoneSelector.WorkZoneSelectorViewController:ViewDidLoad ()
在这个例子中,我在PhotoTakerViewController上并使用PopToRootViewController成功返回到HomeViewController(这也可能发生在我使用“后退”按钮时,直到我回到HomeViewController)。然后我尝试使用segWorkZoneSelector来显示WorkZoneViewController。这是出现此错误的地方。所以,由于一个我不明白的原因,应用程序尝试将我已加载的最后一个视图控制器转换为我想要立即显示的视图控制器。 PhotoTakerViewController和WorkZone继承自常见的AppViewController。这3个类中没有一个具有ExportAttribute
我无法系统地重现此错误。
这个错误消息的奇怪之处还在于它说应用程序崩溃了方法WorkZoneSelectorViewController:ViewDidLoad。但是当我尝试在方法的开头添加一些指令时,这些指令永远不会被调用。