UISearchDisplayController的表视图分隔线在模态视图中加载时出现故障,我该如何解决?

时间:2012-12-04 01:50:58

标签: iphone objective-c ios uisearchbar modalviewcontroller

我正在尝试加载覆盖导航控制器的基本搜索视图(即,在推理堆栈上推送)。要实现这一点,我使用的是[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];
}

问题在于,当搜索视图呈现时,它会使用透明的黑色视图使表格视图变黑,这是正常的事情,但它似乎不会覆盖表格视图的分隔符,如下所示: / p>

table view glitch

我真的不知道如何修复它。我最好的猜测是它与模态控制器加载一个我不理解的视图的过程有关。我尝试将becomeFirstResponder移到viewDidLoad方法。我还尝试重新排序setActive方法和becomeFirstResponder方法,同时将setActive方法更改为animated:NOYES

到目前为止,无济于事,我显然没有在这里理解某些东西,我猜我正在以某种无意的方式使用某些东西。请帮忙,谢谢:)

编辑:有趣的是,当我点击显示在resignFirstResponder搜索栏的表格视图,然后再次在搜索栏内点击以激活becomeFirstResponder时,它会正常加载,没有故障,这是什么意思。

2 个答案:

答案 0 :(得分:1)

您是否尝试过self.searchDisplayController.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone; ??

答案 1 :(得分:0)

好的,所以经过几个小时的代码搞乱,试图理解我做错了什么,我终于找到了答案,或者至少是一个修复。 (我仍然对实际出错的事情感到困惑)

我只是从storyboard中的界面构建器中删除了搜索栏。并将其替换为另一个 - 当然还包括将搜索栏重新连接为searchDisplayController的搜索栏属性。

我最好的猜测是Xcode无论出于什么原因都不喜欢我拖入的顺序并将UI元素连接到界面构建器/故事板。

希望这有助于某人。