在 iOS 7 中使用 a 时出现了一些奇怪的行为UISearchDisplayController
(仅供参考:我碰巧在 iOS 7 上进行开发,但尚未在任何其他版本上对其进行测试)。
设置:
UIViewController
(链接到 aUINavigationController
),它具有:- 1
UINavigationItem
来自父级,右侧UINavigationController
有一个搜索按钮连接到一个方法UIBarButtonItem
showSearchbar
- 一个额外的
UINavigationItem
权利低于持有一个UISegmentedControl
- 1拖放到其
UITableView
标题UISearchDisplayController
- 在
ViewDidLoad
中,我添加了self.tableView.contentOffset = CGPointMake(0, 44);
- 1
-(IBAction)showSearchbar{ [self.searchDisplayController setActive:YES animated:YES]; }
有了以上所有内容,一旦我加载视图,它UISearchBar
就会隐藏在我的UINavigationItem
+后面UISegmentedControl
(上面的 1.2) - 这是预期的和预期的。
但是,我看到了 2 种不同的行为:
- 如果我向下拖动
UITableView
直到UISearchBar
显示 ,然后单击或单击搜索按钮(UITextField
在UISearchBar
上面的 1.1 中),UISearchDisplayController
就会显示。发生这种情况时,我的两个UINavigationItem
s 都会从屏幕上移开,UITextField
缩短,并出现一个取消文本按钮。当我单击取消按钮时,它UISearchDisplayController
会被停用 - 这是预期的。 - 但是,如果我在单击搜索按钮以显示 之前不拖动
UITableView
来显示,那么当我单击取消按钮时,它就不起作用了。相反,就好像被触动了一样。UISearchBar
UISearchDisplayController
UITextField
我尝试将我的showSearchbar
方法更改为[self.searchBar becomeFirstResponder];
,但这并没有改变任何东西。
在第二种行为中,当 处于UISearchDisplayController
活动状态时,它看起来好像取消按钮甚至不存在(就像UISearchBar
它仍然在 上时的状态一样UITableView
)。
关于如何使“取消”按钮起作用的任何想法?