空的初始视图控制器,未调用 viewWillAppear() 和 viewDidAppear()

Posted

技术标签:

【中文标题】空的初始视图控制器,未调用 viewWillAppear() 和 viewDidAppear()【英文标题】:Empty initial view controller, viewWillAppear() and viewDidAppear() not called 【发布时间】:2016-05-08 10:39:21 【问题描述】:

我为 mac os 创建了一个超级简单的秒表应用程序,几周前它运行良好。 今天,我想修改一些东西,但我意识到我的初始视图控制器完全是空的。我不明白发生了什么,我正在考虑更新 Xcode 或类似的东西?

viewDidLoad() 被调用,但 viewWillAppear()viewDidAppear() 未被调用。 不过,我可能会收到一条新的错误消息:

Failed to set (contentViewController) user defined inspected property on (NSWindow): *** -[NSURL initFileURLWithPath:]: nil string parameter

在我的故事板上,NSWindowController 的窗口内容设置为我的初始视图控制器。

我再说一遍,几周前一切正常,有人知道这个问题吗?

提前致谢!

【问题讨论】:

最重要的信息是[NSURL initFileURLWithPath:]: nil string parameter。在某处将使用nil 参数创建NSURL 不要将解决方案添加到您的问题中。一个问题应该仍然是一个问题。如果您找到了问题的解决方案,您可以自己发布答案——当然也可以接受现有的答案。 【参考方案1】:

听起来好像您可能已经重命名了一个文件而没有更新对它的引用。

【讨论】:

但是为什么会调用viewDidLoad() 而不是viewWillAppear()viewDidAppear() 呢?【参考方案2】:

如果您使用自定义 TabController 或 NavigationController 并在那里添加了 viewController,请确保在 TabController、NavigationController 中调用 super.ViewWillAppear(),或者即使您扩展了另一个控制器,也应该添加它。如果你不成功,你就不会调用 ViewWillAppear、ViewDidAppear。两周前我遇到了同样的问题。

【讨论】:

以上是关于空的初始视图控制器,未调用 viewWillAppear() 和 viewDidAppear()的主要内容,如果未能解决你的问题,请参考以下文章

是否在空的初始化程序列表(并明确指定类型)上调用 std::min 未定义的行为?

在 Swift 中以编程方式将视图添加到 stackview

使用情节提要时未调用 UITableViewController 覆盖初始化函数

未调用 RxSwift 订阅块

在 reloadData 后未调用 cellForRowAtIndexPath

关闭屏幕时未调用 UICollectionView performBatchUpdates 完成