Ios UISearchDisplayController取消按钮不工作
在iOS 7中使用Ios UISearchDisplayController取消按钮不工作,ios,objective-c,ios7,uisearchbar,uisearchdisplaycontroller,Ios,Objective C,Ios7,Uisearchbar,Uisearchdisplaycontroller,在iOS 7中使用UISearchDisplayController时,我会有一些奇怪的行为(仅供参考:我碰巧是在iOS 7上开发的,但我没有在任何其他版本上测试过) 设置: UIViewController(链接到UINavigationController),它具有: 1UINavigationItem来自父级UINavigationController,右侧的UIBarButtonItem搜索按钮连接到showSearchbar方法 另一个UINavigationItem位于保存UISeg
UISearchDisplayController
时,我会有一些奇怪的行为(仅供参考:我碰巧是在iOS 7上开发的,但我没有在任何其他版本上测试过)
设置:
UIViewController
(链接到UINavigationController
),它具有:
UINavigationItem
来自父级UINavigationController
,右侧的UIBarButtonItem
搜索按钮连接到showSearchbar
方法UINavigationItem
位于保存UISegmentedControl
UISearchDisplayController
拖放到标题上的UITableView
ViewDidLoad
中,我添加了self.tableView.contentOffset=CGPointMake(0,44)代码>
-(iAction)显示搜索栏{[self.searchDisplayController设置活动:是动画:是];}
UISearchBar
就会隐藏在我的UINavigationItem
+UISegmentedControl
(上面的1.2)后面-这是预期的和预期的
然而,我看到了两种不同的行为:
UITableView
直到显示UISearchBar
,然后单击UISearchBar
中的UITextField
,或者单击搜索按钮(在上面的1.1中),就会显示UISearchDisplayController
。发生这种情况时,myUINavigationItem
s都会从屏幕上移,而UITextField
会缩短,并出现一个取消文本按钮。当我单击“取消”按钮时,UISearchDisplayController
将被停用-这是预期的李>
UISearchDisplayController
之前,我没有拖动UITableView
以显示UISearchBar
,当我单击取消按钮时,它将不起作用。相反,它就像触摸了UITextField
showSearchbar
方法更改为[self.searchBar becomeFirstResponder]代码>,但这不会改变任何事情
在第二种行为中,当UISearchDisplayController
处于活动状态时,它看起来似乎甚至不存在取消按钮(如UISearchBar
仍在UITableView
上时的状态)
有没有关于如何使“取消”按钮工作的想法?我也有同样的行为。真奇怪。如果你明白了,请写下你的解决方法。现在,我唯一的解决办法是将UITableView滚动到顶部,然后显示搜索结果,如下所示:[self.tableView scrollRectToVisible:CGRectMake(0,0,1,1)动画:否];[self.searchBar成为第一响应者];确认了解决方案的工作。我使用了tv.contentOffset=CGPointMake(0,-64)
,因为我的TableView在导航栏下流动,这似乎是必要的。