我有一个UISearchController,其中searchBar分配给了我的视图控制器的导航项。在iOS 13.3中,一切正常。然而,在iOS 12.4中,searchBar已经消失,似乎没有被添加到视图层次结构中。
以下是iOS 13.3中的UI界面:
以下是iOS 12.4中相同的UI界面:
我的代码配置搜索控制器如下:
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];
如果我在调试器中输入以下内容来检查搜索栏的视图层次结构:
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。视图控制器从故事板加载,并被配置为 UISplitViewController 的详细视图控制器。
要在 iOS 12 中按预期显示搜索栏,应该采取哪些不同的措施?