我有一个UITabBar控制器管理多个控制器(使用SDK 3.0)。其中一个是一个的tableView控制器,我需要提供使用UISearchDisplayController搜索能力。我所有的代码是基于苹果TableSearch例子。然而,在选项卡上单击时,该控制器的tableView出现显示其相关的内容,但并未显示搜索栏。我已经检查了IB的厦门国际银行,以确保所有网点的设置是否正确,但无论我怎么努力self.searchDisplayController永远是零和搜索栏没有显示。

在实践我从TableSearch例如复制MainView.xib和文件的所有者类设置为标签的正确的控制器类。出口是一组如在示例MainView.xib。我失去了任何重要的一步或做错了什么?

感谢您提前。

有帮助吗?

解决方案 3

确定,我已发现了如何解决这个问题。在我的情况下,问题是由于这样的事实,我使用嵌入的UITabBarController内作为其管理标签之一(即,作为一个孩子)的控制器。

从的UITabBarController删除控制器,然后加入的UINavigationController到的UITabBarController代替,终于把我的控制器作为的UINavigationController的孩子完全解决了这个问题。

我不明白这是为什么(有文档中没有相关信息,经常发生);然而,它现在就像一个魅力。 与亲切的问候。

其他提示

我有同样的问题,一旦发生了这种解决方案绊倒......

如果你有你的表视图控制器(例如,UISearchDisplayController)嵌套在使用界面生成一个标签栏或导航控制器,你需要在“属性检查器”窗口中设置“笔尖名称”。

笔尖名称将是保持所述表视图,并具有控制器(例如。UISearchDisplayController)作为文件的所有者的一个。

我也有这个问题:(是搜索栏得到隐藏在背后的tableview?

@unforgiven, 你试试这个...?

searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 40)]; 
[self.tableView setTableHeaderView: searchBar];

此手动创建一个搜索栏和它的工作原理。但我在做一些IB愚蠢的错误,搜索栏没有显示出来,尽管我的连接是完美的。 : - (

做,如果你得到的答案更新这个帖子...

我有一个类似的问题

要解决我不得不做一个额外的步骤,以unforgivens答案 在我的主要笔尖

1)创建UITabController 2)然后,我拖出一个UINavigational控制器进入的标签控制器 3)然后拖出一个UITableViewController到NavigationalController作为一个孩子 4)再变(3)班是我在检查MyTableWithSearchBarViewController - 检查笔尖名称是否正确,如有必要在检查改变这一以及 5)然后,我不得不删除这是自动由IB在步骤(3)产生的的tableView。只有这样,在搜索栏中显示正确的...

如果在步骤3 I拖出不同的控制器上舞台或左侧的tableView那里它将永远只显示表,而不是搜索栏

怪异

Tomtrapeze有,如果你的笔尖文件包含的UITableViewController正确的答案。但是,如果您加载代码的UITableViewController - 比如推一个UINavigationController的堆栈 - 该解决方案是一个有点不同。

在初始化的UITableViewController或子类,则需要使用-initWithNibName:包:形式的初始化,并注明您的笔尖文件的名称。另外,还可以使用标准的-initWithStyle:初始化并手动加载视图之前设置nibName属性

如果当视图被加载的nibName属性没有设置,的UITableViewController将不使用正常的UIViewController笔尖查找逻辑。它只是将加载一个标准的UITableView代替。

我最近了解到我可以加载文件NIB与[[MyViewController alloc] initWithNibName:nil bundle:nil];当NIB文件具有相同的名称作为类(即MyViewController.xib)。事实证明,初始化这样会导致“UISearchBarandUISearchBarDisplayController`不显示。当我初始化通过实际打字之类的名称视图控制器,我的搜索栏显示正确。我最初以为是有东西做我是如何呈现的视图控制器,但是很高兴,这是不是。

PGWSearchViewController *searchVC = [[PGWSearchViewController alloc] initWithNibName:@"PGWSearchViewController" bundle:nil];

searchVC.modalPresentationStyle = UIModalPresentationFullScreen;
searchVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

[self presentViewController:searchVC animated:YES completion:^{ }];

此使用的iOS SDK 5.1和4.3.1的XCode

这对我的作品的另一个可能的解决方法是给init的UITableViewController与initWithNibName:束:

SearchEntryTableViewController* searchEntryTableViewController = [[SearchEntryTableViewController alloc]initWithNibName:@"SearchEntryTableViewController" bundle:nil];

要嵌套的UITableViewController在一个UINavigationController之前把它在一个的UITabBarController不解决这个问题对我来说...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top