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

Xamarin.iOS NavigationController is null after revisiting page twice

提问人:James McNulty 提问时间:11/17/2021 更新时间:11/19/2021 访问量:117

问:

我正在设计一个应用程序,使用户能够登录,提供类别,子类别和子子类别的列表,然后在这些选定的类别中显示产品。

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

现在来谈谈问题...... 第一次浏览时,这将完全正常工作,我能够浏览和选择类别和产品。但是,如果我要一直转到产品并按回类别并再次启动,如果我选择子类别,navigationController 将返回空引用异常。

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

我希望有人能帮忙。 谢谢 詹姆斯·麦克纳尔蒂

Xamarin Xamarin.iOS UIAnageController NullReferenceException NavigationController

评论

0赞 Wen xu Li 11/17/2021
您介意与我们分享一个 baisc 的最小测试项目吗?您可以将其上传到 github 并在此处附上链接。

答:

0赞 James McNulty 11/19/2021 #1

所以我在回答我自己的问题......对于那些可能遇到这个问题的人,甚至可能给自己一个说明。

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

Tapdelegate.Selected -= EventMethod

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

NavigationController.PushViewController(viewcontroller, bool) 

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

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