【发布时间】:2010-03-07 05:14:52
【问题描述】:
我正在开发一个标签栏应用程序,其中一个标签有一个连接到 UISearchBar 的 UISearchDisplayController。这一切都在NIB中连接起来并且正在工作。当我点击搜索栏时,Scope 和 Cancel 按钮会飞入等,并且搜索委托会正确更新结果表。
但是,我试图在 viewDidLoad 消息而不是 NIB 中实现相同的代码,但是当我从 NIB 中删除搜索显示控制器并取消注释我的代码以在函数中创建相同的控制器时,它不起作用。好像没有建立一些基本连接,所以我的所有搜索委托功能都没有被调用。
这是我的工作 NIB 版本的搜索显示控制器。它连接到搜索栏,UINavigationController 子类 (MASearchController),其根视图连接为 searchContentsController。
alt text http://img192.imageshack.us/img192/3050/screenshot20100307at304.png
现在这是您希望在代码中创建相同的内容,对吧?我正在做的是将 UISearchBar 留在 NIB 中,以便在代码中一次消除一个难题。
// [MASearchController viewDidLoad]
UISearchDisplayController *searchController = [[[UISearchDisplayController alloc]
initWithSearchBar:searchBar
contentsController:[[self viewControllers] objectAtIndex:0]] autorelease];
[searchController setDelegate:self];
[searchController setSearchResultsDelegate:self];
[searchController setSearchResultsDataSource:self];
我在运行时检查了所有对象,它们都已检出。基本上我已经从NIB中删除了搜索显示控制器,然后在viewDidLoad消息中输入代码来创建它。
为什么这不起作用?搜索键盘出现了,但我的搜索和按钮动画功能都不起作用???
【问题讨论】:
标签: objective-c iphone search uisearchbar uisearchdisplaycontroller