在导航推送上激活没有动画的 UISearchController

Posted

技术标签:

【中文标题】在导航推送上激活没有动画的 UISearchController【英文标题】:Activate UISearchController without animation on navigation push 【发布时间】:2016-03-12 17:43:24 【问题描述】:

UISearchDisplayController 中,有一种方法可以在viewWillAppear: 方法中将其设置为活动状态而无需动画,因此视图控制器将使用已激活的UISearchDisplayController 并已显示键盘进行推送,这非常好。但现在已弃用。

现在我们有了UISearchController,我只能用两个动画来做到这一点:首先是导航推送,然后是激活动画。我只想看到导航推送动画,并且 searchController 已经激活,搜索栏作为第一响应者和键盘显示。

我试过了

    UIView.performWithoutAnimation  () -> Void in
        self.searchController.active = true
    

并尝试使用自定义的空呈现委托方法

func presentSearchController(searchController: UISearchController) 


【问题讨论】:

你有什么办法吗? 不,Ryan Poolos,我没有。我决定使用UISearchDisplayController,直到发现一个好的修复程序 【参考方案1】:

不完全是答案,但是...

我试图通过在没有动画的情况下将.active 设置为false 来消除UISearchController,而您对UIView.performWithoutAnimation 的提示成功了

UIView.performWithoutAnimation  // disable the animation as we are going straight to another view
    searchController.isActive = false

【讨论】:

以上是关于在导航推送上激活没有动画的 UISearchController的主要内容,如果未能解决你的问题,请参考以下文章

在没有 UINavigationController 的情况下推送 Segue 动画

嵌套推送动画可能导致导航栏损坏多次警告

如何使用核心动画创建导航控制器推送效果?

在一个视图控制器上隐藏导航栏,在推送的控制器上显示它

向后滑动时嵌套推送动画可能导致导航栏损坏

iOS11 中奇怪的 uitableview 行为。单元格通过导航推送动画向上滚动