我正在尝试加载覆盖我的导航控制器的基本搜索视图(即,不推送到导航堆栈上)。为了实现这一点,我正在使用[self presentModalViewController:vc animated:NO].
全模态视图演示代码:
- (void)searchButtonPressed
{
TMSearchViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"Search"];
[self presentModalViewController:vc animated:NO];
vc.searchDisplayController.searchBar.delegate = self;
}
在屏幕上显示模态视图后,将运行以下代码(在搜索视图的控制器内):
- (void)viewDidAppear:(BOOL)animated
{
[self.searchDisplayController.searchBar becomeFirstResponder];
[self.searchDisplayController setActive:YES animated:NO];
}
问题是,当搜索视图呈现时,它会做正常的事情,即用透明的黑色视图将表格视图涂黑,但它似乎没有覆盖表格视图的分隔符,如下所示:

我真的不知道如何解决它。我最好的猜测是,这与模态控制器加载我无法正确理解的视图的过程有关。我已经尝试将其becomeFirstResponder移至该viewDidLoad方法。我还尝试重新排序setActive方法和becomeFirstResponder方法,同时将方法更改setActive为animated:NOand YES。
到目前为止,无济于事,我显然不明白这里的某些东西,我猜我正在以一种无意的方式使用某些东西。请帮忙,谢谢:)
编辑:有趣的是,当我单击搜索栏上涂黑的表格视图resignFirstResponder,然后再次单击搜索栏内部以激活becomeFirstResponder它时,它加载正常,没有故障,它的意思是什么。