【问题标题】:Adding Searchbar to NavigationBar but TableViewCells not loading information将 Searchbar 添加到 NavigationBar 但 TableViewCells 未加载信息
【发布时间】:2013-11-15 22:34:45
【问题描述】:

我曾经在我的 TableViewController 中有一个 UISearchDisplayController,但我最近将它更改为 UISearchBar 并将其添加到我的 NavigationBar。 我在 Navigation titleView 中添加了一个 UISearchBar,因为我希望它类似于最新的 Twitter 应用程序。我目前遇到的问题是我不知道如何在表格视图中显示搜索结果。我可以看到正在进行搜索,因为我 NSLogged searchbar.text。当我使用 UISearchDisplayController 它有一个 SearchResultsTableView 但现在我不知道如何让它显示在表格视图上。有人有任何指导或帮助吗?任何事情都值得赞赏。

注意:我已经看过关于向导航栏添加搜索栏或使用带有表格视图的 uisearchdisplaycontroller 的教程和帖子。我尝试将 UISearchDisplayController 添加到导航栏,但它似乎也不起作用。我正在使用 UISearchBar 并希望它更新我的表格视图控制器。这是 twitter 搜索的图片:http://i.imgur.com/BiiQHjp.png

【问题讨论】:

标签: ios objective-c uitableview uisearchbar


【解决方案1】:

您可以简单地创建一个UITableView 来显示您的搜索结果,让您的视图控制器实现UITableViewDelegateDataSource。如果您想进行实时搜索,那么在搜索栏-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 中重新加载您的表格视图,使用新数据或在- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 中重新加载它,如果您想要静态搜索。我不认为 twitter 或linkedin 应用程序使用searchDisplayController - 他们只是使用基于UISearchBar 代表的自定义搜索,正如我所描述的,因为UISearchDisplay 控制器在您想要完全搜索自定义时非常有限。因为它,我很少使用它。

【讨论】:

  • 我已经按照您描述的方式完成了,但它隐藏了我的导航栏。如果我添加 self.navigationController.navigationBar.isHidden = NO;在 searchDisplayControllerDidBeginSearch 内部,它隐藏了导航栏一秒钟,几乎就像闪烁或抽搐一样,并且还没有重新调整大小。
  • @JayNixon 只需将其添加到您的viewDidLoadself.edgesForExtendedLayout = UIRectEdgeNone; 但我描述了没有使用 UISearchDisplayController 的方式 - 只是自定义表格视图和带有两个代表的搜索栏。仔细阅读。
  • 啊,抱歉,我一定是看错了。但是我可以在 UITableViewController 中添加 UITableViewDelegate 和 UITableViewDataSource 吗?看起来很奇怪哈哈。
  • 您可以使用相同的委托方法。只需检查其中的 tableView。例如在 cellForRowAtIndexPath 中:if ([tableView isEqualTo: searchTable]){....}
  • 我疯了!单击“x”或取消按钮时,如何隐藏 searchTable 或关闭键盘?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2017-02-04
相关资源
最近更新 更多