gpt4 book ai didi

ios - UISearchController - 警告 : Attempt to dismiss from view controller while a presentation or dismiss is in progress

转载 作者:行者123 更新时间:2023-11-29 01:08:00 31 4
gpt4 key购买 nike

我有一个可搜索的 TableView Controller (使用 UISearchController 和一个 NSFetchedResultsController),它列出了项目行。

它让用户点击一行来选择项目,这会调用前一个 TableView 的展开转场。

当用户单击一行时,我希望将选定的 FetchedResultsController 对象发送回原始 tableview Controller 并填充原始 tableview 中的一个字段并关闭当前可搜索的 tableview Controller 。

当我点击一行选择项目时没有搜索,它工作正常,没有任何警告。

但是,当我搜索 表格然后从过滤的项目中选择时,我收到以下警告:

警告:在演示或解散过程中尝试从 View Controller 中解散!

unwind segue 在 Storyboard中从 tableview 单元格连接到同一 tableview Controller 上的“退出”图标。这是展开转场的代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "myUnwindSegue" {

let indexPath = tableView.indexPathForSelectedRow
selectedAirfield = frc.objectAtIndexPath(indexPath!) as? Airfields
self.navigationController?.popViewControllerAnimated(true)

}
}

我也试过:

if !self.isBeingDismissed() {
self.navigationController?.popViewControllerAnimated(true)
}

但这给了我与上面相同的警告。

我也试过:

self.dismissViewControllerAnimated(true, completion: nil)

但这只会让我回到当前的 tableview 而不会让我回到之前的 tableview controller 并给我以下警告:

popToViewController:transition:在现有的过渡或演示发生时调用;导航堆栈将不会更新。

我也试过禁用 segue 到可搜索的 tableview Controller 的动画,但这没有效果。

我也试过放置:

self.searchController?.loadViewIfNeeded()

在 viewDidLoad 中也尝试过:

 deinit{
if let superView = resultSearchController.view.superview {
superView.removeFromSuperview()
}
}

这两个都不能解决问题。

重申一下,它仅在选择搜索结果时发生,并且在选择未过滤的表格 View 行时完美运行。

我在 Xcode 7.2.1 上。

感谢任何帮助。

最佳答案

好的,我发现了问题,它可能对其他人有帮助。

我在 didSelectRowAtIndexPath 方法中有以下内容:

self.resultSearchController.active = false

因此,当我通过选择行关闭 View 时,我试图停用显然涉及动画/演示的 UISearchController

通过删除此行,警告已停止。

关于ios - UISearchController - 警告 : Attempt to dismiss from view controller while a presentation or dismiss is in progress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36124210/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com