2

我正在尝试加载覆盖我的导航控制器的基本搜索视图(即,推送到导航堆栈上)。为了实现这一点,我正在使用[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方法,同时将方法更改setActiveanimated:NOand YES

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

编辑:有趣的是,当我单击搜索栏上涂黑的表格视图resignFirstResponder,然后再次单击搜索栏内部以激活becomeFirstResponder它时,它加载正常,没有故障,它的意思是什么。

4

2 回答 2

1

你试过 self.searchDisplayController.searchResultsTableView.separatorStyle=UITableViewCellSeparatorStyleNone; ??

于 2012-12-04T06:24:20.690 回答
0

好的,经过数小时的代码混乱,试图理解我做错了什么,我终于找到了答案,或者至少找到了解决办法。(我仍然对实际出了什么问题感到困惑)

我只是从情节提要的界面构建器中删除了搜索栏。并用另一个替换它 -searchDisplayController当然,这涉及将搜索栏重新连接为 的搜索栏属性。

我最好的猜测是,无论出于何种原因,Xcode 都不喜欢我将 UI 元素拖入并将 UI 元素连接到界面构建器/情节提要的顺序。

希望这可以帮助某人。

于 2012-12-04T03:48:59.920 回答