简单来说,我有一个主视图控制器,其中导航栏被隐藏。从该 VC 的导航控制器中,我推出另一个具有可见导航栏的视图控制器。然后,我将 searchController 添加到 navigationItem 中,以便在向下滚动时添加 searchBar。一切都正常工作,直到您滑动返回弹出 VC。
导航栏会与 VC 一起动画离开屏幕,但 searchBar 将动画显示为在原地上升。更糟糕的是,如果我取消滑动以弹出,则整个 searchBar 将消失,并出现黑色视图(我认为是 searchController 背景或任何视图背景)。
我尝试了所有方法,这只是几行代码,但我一直在解决这个问题。我知道我可以禁用滑动以弹出,但我不想这样做(即使按下返回键,searchBar 也会以同样奇怪的方式进行动画处理),而且我不想以其他方式添加 searchBar。
在附加的视频中,我只是用手指滑动以显示动画。
导航栏会与 VC 一起动画离开屏幕,但 searchBar 将动画显示为在原地上升。更糟糕的是,如果我取消滑动以弹出,则整个 searchBar 将消失,并出现黑色视图(我认为是 searchController 背景或任何视图背景)。
我尝试了所有方法,这只是几行代码,但我一直在解决这个问题。我知道我可以禁用滑动以弹出,但我不想这样做(即使按下返回键,searchBar 也会以同样奇怪的方式进行动画处理),而且我不想以其他方式添加 searchBar。
在附加的视频中,我只是用手指滑动以显示动画。
- (void)viewDidLoad {
[super viewDidLoad];
self.definesPresentationContext = YES;
[self.navigationController setNavigationBarHidden:NO];
if (@available(iOS 11.0, *)) {
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
_searchController.delegate = self;
_searchController.searchResultsUpdater = self;
_searchController.searchBar.placeholder = @"Search";
self.navigationItem.searchController = _searchController;
self.navigationItem.hidesSearchBarWhenScrolling = YES;
}
}