【问题标题】:Xamarin.iOS NavigationController is null after revisiting page twiceXamarin.iOS NavigationController 在重新访问页面两次后为空
【发布时间】:2021-11-16 16:22:18
【问题描述】:

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

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

现在问题.... 当第一次浏览这个时,这将完全正常,我可以浏览和选择类别和产品。但是,如果我要一直到产品并按回类别并重新开始第二次,如果我选择子类别,则导航控制器将返回空引用异常。

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

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

【问题讨论】:

  • 您介意与我们分享一个简单的、最小的测试项目吗?您可以将其上传到github并在此处附上链接。

标签: xamarin xamarin.ios uinavigationcontroller nullreferenceexception navigationcontroller


【解决方案1】:

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

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

Tapdelegate.Selected -= EventMethod

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

NavigationController.PushViewController(viewcontroller, bool) 

将使用与事件初始调用相同的句柄。 这是一个不。好难过!!!!

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2022-01-16
    • 2015-11-17
    • 1970-01-01
    • 2016-08-02
    相关资源
    最近更新 更多