我正在开发一个选项卡应用程序,其中一个选项卡连接了一个UISearchBar和一个UISearchDisplayController。它们在NIB中都已经连接好并且正常工作。当我点击搜索栏时,Scope和Cancel按钮会飞入等等,搜索代理会正确更新结果表。
但是,我尝试在
这是我的工作NIB版本的Search Display Controller。它已连接到搜索栏、
我已经在运行时检查了所有对象,它们都正常。实际上,我已经从NIB中删除了搜索显示控制器,然后放入了创建它的代码到
为什么这不起作用?搜索键盘出现了,但我的搜索和按钮动画功能都不起作用???
但是,我尝试在
viewDidLoad
消息中实现相同的代码,而不是使用NIB。然而,当我从NIB中删除搜索显示控制器并取消注释函数中创建相同控制器的代码时,它就无法工作了。似乎存在某种基本连接未建立,导致所有搜索代理功能都没有被调用。这是我的工作NIB版本的Search Display Controller。它已连接到搜索栏、
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
消息中。为什么这不起作用?搜索键盘出现了,但我的搜索和按钮动画功能都不起作用???