【发布时间】:2016-01-25 07:13:47
【问题描述】:
我在 TableView 中实现了一个 UISearchController,由导航控制器推送。
首先我的问题是,每当我点击 SearchBar 时,它就会消失。当我输入一些文本时它可以工作,但它保持完全空白。然后我设法使用这段代码半解决了这个问题:
- (void)searchForText:(NSString*)searchText
{
[self.view addSubview:villeSearchController.searchBar];
}
哪个半有效,因为现在,当我单击搜索栏时,它会空白,但是如果我输入一个字符,它会再次出现,然后无论如何它都会停留在那里。直到我取消搜索,然后再次单击它,在这种情况下它会空白。 我进行了一些测试,并且在第一次点击时调用了这个方法(searchForText),所以这不是原因。
有谁知道我如何解决这个问题并让搜索栏从第一次点击开始出现?
编辑:
这就是我初始化 SearchController 的方式:
villeSearchController = [[UISearchController alloc] initWithSearchResultsController:nil];
villeSearchController.searchResultsUpdater = self;
villeSearchController.dimsBackgroundDuringPresentation = NO;
villeSearchController.searchBar.delegate = self;
villeTableView.tableHeaderView = villeSearchController.searchBar;
villeSearchController.searchBar.scopeButtonTitles = @[];
self.definesPresentationContext = YES;
[villeSearchController.searchBar sizeToFit];
【问题讨论】:
-
嗨。请显示您的代码以初始化
uisearchcontroller。检查此链接并确保您的初始化代码正确。 https://developer.apple.com/library/ios/samplecode/TableSearch_UISearchController/Introduction/Intro.html -
您好,我已经更新了代码。我觉得很好
-
1) 尝试检查
NavigationBar的半透明属性 - 当SearchController将呈现searchBar时,它应该是YES,否则将是UI 错误。 2) 如果UISearchController使用默认演示文稿,则不应手动将searchBar添加到子视图。 -
你的第一个选项对我有用!请把它作为答案,我会接受的。第一个选项与第二个选项相结合!我不再添加子视图,只是放置半透明属性!
标签: ios tableview uisearchbar uisearchcontroller