【问题标题】:popViewController to a UIViewController initialized with a UIStoryboardSeguepopViewController 到使用 UIStoryboardSegue 初始化的 UIViewController
【发布时间】:2012-07-31 07:58:32
【问题描述】:

我有一个列表控制器,它触发performSegueWithIdentifier 来加载所选项目的detailViewController。为了初始化 detailViewController,我在 prepareForSegue 中设置了一个属性,该属性在 detailView 显示之前被调用。这一切都很好。

但是...
从详细视图中,我导航到一个执行一些内存密集型操作的控制器,我的 detailViewController 最终被卸载,viewDidUnload 被调用。

现在用户按下标题栏中的后退按钮导致popViewController 触发。当 detailViewController 的 viewDidLoad 方法再次执行时,我没有机会在显示之前设置适当的属性。所以此时我的控件都没有显示正确/任何信息。

在我的 detailViewController 上的属性被释放并且用户导航回它后,重新初始化该属性的最佳方法是什么?我曾想过在我的 AppDelegate 上设置“selectedItem”以在这种情况下使用,但这似乎是一种 hack。

提前致谢!

【问题讨论】:

  • viewDidUnload 正在调用要释放的视图,而不是视图控制器。只要 VC 还在那里,你就不应该失去你的财产。你是在释放你自己的 VC 吗?
  • 有那么容易吗?今晚我必须仔细检查一下,但我认为我的 VC 上正在调用 dealloc。

标签: ios viewdidload uistoryboardsegue popviewcontroller viewdidunload


【解决方案1】:

我误解了 viewDidUnload 的场景并释放了我稍后重建视图所需的项目。再次感谢戈登。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2019-06-16
    相关资源
    最近更新 更多