为什么:"Attempting to load .. while deallocating... :UISearchController:"

Why: "Attempting to load .. while deallocating... :UISearchController:"

我有根情节提要,其中有一个按钮可以推动 ViewControllerB。

ViewControllerB 有一个排序控制器UISortController

ViewControllerB 有一个 "back" 方法,由根导航控制器控制。

我收到以下警告:

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7ff10258ba60>)

我使用 Apple's sample(需要会员资格)来添加新的 UISearchController。

有人遇到过这个吗?我该如何解决?

我建议改用 Storyboard Unwind Segues:https://developer.apple.com/library/ios/technotes/tn2298/_index.html

这个有见地的 post 还有大量非常有用的实现细节:

What are Unwind segues for and how do you use them?

我遇到了相同的控制台错误消息,但请注意以下有关我的 Xcode 项目的信息:

  • 由于导航控制器与拆分视图控制器(详细视图控制器)一起使用,因此必须保留它们;
  • (根据@AndrewEbling 上面的评论)代码不需要展开转场,因为导航控制器自动管理(一部分)任务;
  • 代码也不需要展开转场,因为块用于在父视图控制器中设置属性。

感谢 Leehro 和 Clafou 在 this SO answer 中的评论,通过在 viewDidLoad 中使用以下代码行抑制了控制台错误消息(请注意,无需将其插入 dealloc):

[self.searchController loadViewIfNeeded];(注释来自 iOS 9)。