gpt4 book ai didi

ios - iOS 12 中的 View 层次结构中缺少 searchBar

转载 作者:行者123 更新时间:2023-12-01 16:13:08 25 4
gpt4 key购买 nike

我有一个 UISearchController 和 searchBar 分配给我的 View Controller 的导航项。在 iOS 13.3 中一切正常。但是,在 iOS 12.4 中,searchBar 缺失并且似乎尚未添加到 View 层次结构中。

这是 iOS 13.3 中的 UI:

enter image description here

在 iOS 12.4 中也是如此:

enter image description here

我配置搜索 Controller 的代码如下:

self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.obscuresBackgroundDuringPresentation = NO;

NSString *placeholder = NSLocalizedString(@"Address or place name", nil);

self.searchController.searchBar.placeholder = placeholder;
self.searchController.searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone;
self.searchController.searchBar.autocorrectionType = UITextAutocorrectionTypeNo;
self.searchController.searchBar.delegate = self;

self.definesPresentationContext = YES;

self.navigationItem.hidesSearchBarWhenScrolling = NO;
self.navigationItem.searchController = self.searchController;

[self.searchController.searchBar sizeToFit];

如果我通过在调试器中输入以下内容来检查 searchBar 的 View 层次结构:
po self.navigationItem.searchController.searchBar.superview.superview

我在 iOS 13.3 中看到以下内容:
<UILayoutContainerView: 0x7f8c97b300c0; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x60000373dd40>; layer = <CALayer: 0x6000038ae620>>

这在 iOS 12.4 中:
nil

我使用的是 Xcode 版本 11.3.1 (11C504),该项目面向 iOS 12.0。 View Controller 从 Storyboard加载并配置为 UISplitViewController 的详细 View Controller 。

我应该怎么做才能让 searchBar 在 iOS 12 中按预期显示?

最佳答案

这实际上是因为 UISearchController 的 iOS 12 问题初始值设定项,它采用 nibName 和 nibBundle 作为其参数,如果您没有在自定义中覆盖它 UISearchController类,您将面临上述问题。我只是通过在我的 UISearchController 中实现这个片段来解决这个问题。类(class):

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
如果您不想子类化 UISearchController你应该实现上面的初始化器而不是:
UISearchController(searchResultsController: nil)

关于ios - iOS 12 中的 View 层次结构中缺少 searchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59885253/

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