UISearchDisplayController取消按钮不起作用

时间:2013-11-05 05:05:23

标签: ios objective-c ios7 uisearchbar uisearchdisplaycontroller

我在iOS 7中使用UISearchDisplayController时会遇到一些奇怪的行为(仅供参考:我碰巧在iOS 7上开发,但我没有在任何其他版本上测试过它。)

设定:

  1. UIViewController(链接到UINavigationController),其中包含:
      来自父UINavigationItem的{​​li> 1 UINavigationController,右侧的UIBarButtonItem搜索按钮连接到showSearchbar方法
    1. UINavigationItem
    2. 之下的另一个UISegmentedControl
    3. 1 UITableView,其UISearchDisplayController被拖放到标题
    4. ViewDidLoad,我添加了self.tableView.contentOffset = CGPointMake(0, 44);
  2. -(IBAction)showSearchbar{ [self.searchDisplayController setActive:YES animated:YES]; }
  3. 综上所述,我加载视图后,UISearchBar隐藏在UINavigationItem + UISegmentedControl(上面的1.2)后面 - 这是预期的和预期的。

    但是,我看到了两种不同的行为:

    1. 如果我向下拖动UITableView,直到UISearchBar显示,我点击UITextField中的UISearchBar或点击搜索按钮(上面的1.1) ,显示UISearchDisplayController。发生这种情况时,我的UINavigationItem都会从屏幕上移开,UITextField缩短,并显示“取消”文本按钮。单击“取消”按钮时,UISearchDisplayController将被取消激活 - 这是预期的。
    2. 但是,如果我拖动UITableView以显示UISearchBar,然后点击搜索按钮以显示UISearchDisplayController,当我点击取消按钮,它不起作用。相反,就好像UITextField被触及一样。
    3. 我已尝试将showSearchbar方法更改为[self.searchBar becomeFirstResponder];,但这不会改变任何内容。

      在第二种行为中,当UISearchDisplayController处于活动状态时,看起来好像取消按钮甚至不存在(就像UISearchBar的状态一样,它仍在{{1}上}})。

      有关如何使取消按钮有效的任何想法?

0 个答案:

没有答案