iOS13 上的 UISearchController 崩溃

Posted

技术标签:

【中文标题】iOS13 上的 UISearchController 崩溃【英文标题】:UISearchController crash on iOS13 【发布时间】:2019-07-15 10:24:08 【问题描述】:

ios12 及更低版本上工作,但在 iOS13 上崩溃并出现此错误

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'UISearchController's control over its search bar has been destroyed. Please use the search bar provided by the UISearchController. searchController = <AdvancedSearchController: 0x7fbd9d224a00>, searchBar = <TDSearchBar: 0x7fbd9b768480; baseClass = UISearchBar; frame = (0 0; 1024 50); text = ''; gestureRecognizers = <NSArray: 0x600002791770>; layer = <CALayer: 0x600002ef9be0>>'

我如何解决?这个异常是什么意思?

*** First throw call stack:
(
    0   CoreFoundation                      0x000000010e296c3e __exceptionPreprocess + 350
    1   libobjc.A.dylib                     0x000000010e104de0 objc_exception_throw + 48
    2   CoreFoundation                      0x000000010e296a7c +[NSException raise:format:] + 188
    3   UIKitCore                           0x000000011fa6e6b0 -[UISearchController _animatorForBarPresentationStyle:dismissing:] + 185
    4   UIKitCore                           0x000000011fa6eb24 -[UISearchController animationControllerForPresentedController:presentingController:sourceController:] + 34
    5   UIKitCore                           0x000000011f3a03a0 -[UIViewController _customAnimatorForPresentedController:presentingController:sourceController:] + 154
    6   UIKitCore                           0x000000011f3a4534 -[UIViewController _presentViewController:withAnimationController:completion:] + 4472
    7   UIKitCore                           0x000000011f3a6d1b __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 98
    8   UIKitCore                           0x000000011f3a7233 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 511
    9   UIKitCore                           0x000000011f3a6c79 -[UIViewController _presentViewController:animated:completion:] + 187
    10  UIKitCore                           0x000000011f3a6ee0 -[UIViewController presentViewController:animated:completion:] + 150

【问题讨论】:

【参考方案1】:

解决了。你不能在 UISearchController 中继承 UISearchBar...至少在 beta 3 中。

【讨论】:

我想知道您是否再次尝试使用 iOS 13/13.1 发行版?我打算自己写一个自定义的UISearchBar 子类,直到我看到这个问题/答案。谢谢! 回答我自己的评论:我可以在 iOS 13.0 和 13.1 中继承 UISearchBar 和 UISearchController

以上是关于iOS13 上的 UISearchController 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

iOS 13 GM 上的 Google 登录失败

iOS 布局在 Xcode 11 上的 iOS 13 上中断 - 未调用 traitCollectionDidChange

sceneDidEnterBackground 上的 URL 请求(iOS13)

iOS 13 SceneDelegate 上的 WKWebView 警报崩溃

iOS 13 和 14 上的 NSKeyValuePopPendingNotificationLocal 崩溃

应用程序图标上的快捷方式项不适用于 iOS 13