Xamarin.iOS 重新访问页面两次后 NavigationController 为空

Xamarin.iOS NavigationController is null after revisiting page twice

我正在设计一个应用程序,它允许用户登录,提供类别、子类别和子子类别的列表,然后显示这些所选类别中的产品。

为此,我有一个带有 5 个选项卡的 UITabBarController,所有这些选项卡都是 UINavigationControllers,分别具有每个页面的根。 第一个选项卡(称为产品)具有我上面描述的导航结构,Categories -> SubCategories- SubSubCategories -> Products

现在问题来了.... 当第一次浏览时,这将完全正常,我能够浏览 select 类别和产品。但是,如果我一直到产品并返回类别并再次开始,如果我 select 一个子类别,navigationController 将 return 空引用异常。

我正在使用 navigationController.PushViewController(viewController, true) 推送视图控制器 并且我没有做现有问题中看到的任何模式演示。

我希望有人能提供帮助。 谢谢, 詹姆斯·麦克纳尔蒂

所以我正在回答我自己的问题.....对于那些可能遇到这个问题甚至可能是给自己的笔记。

所以在我创建的事件中,我忘记了从我的 viewDidDissapear() 方法中的操作中取消附加事件 - 你应该声明....

Tapdelegate.Selected -= EventMethod

这是因为在调用方法之前不这样做或这样做会导致 viewcontroller 留在内存中,因此在使用

NavigationController.PushViewController(viewcontroller, bool) 

将使用与初始调用事件相同的句柄。 这是一个no.no。非常悲伤!!!!

如果您也遇到这个问题,希望这对您有所帮助。享受吧。