来自按钮的 UISearchDisplayController 不是默认搜索字段

UISearchDisplayController from a button not the default search field

我想知道是否可以从导航栏中的按钮激活 UISearchDisplayController,而不是从 Xcode 中的对象库中拉出搜索栏控制器时获得的标准搜索栏.喜欢日历应用程序中的这个功能:

你可以获得一个按钮来触发一个动作,如下所示:

[self.searchDisplayController setActive:YES animated:YES];

但您仍然需要搜索栏,它会根据搜索栏所在的位置进行动画处理。理想情况下,我希望它像 gif 中那样从顶部进入。

非常感谢任何帮助。大卫.

老问题,但我有一个答案,所以我认为值得重温...

最终我使用了 UISearchController 而不是 UISearchDisplayController。

如果您想激活搜索,但不想要搜索栏,您只需使用

激活搜索
self.searchController.active = YES;

然后因为没有搜索栏,您必须自己实现 presentSearchController: UISearchControllerDelegate 协议的方法。

- (void)presentSearchController:(UISearchController *)searchController {
   [self.window.rootViewController presentViewController:self.searchController animated:YES completion:nil];
}

它的动画不太一样,但我确信使用通常的视图控制器动画api我可以获得类似的效果。