4

iOS 7 でa を使用すると、奇妙な動作がUISearchDisplayController発生します (参考: たまたま iOS 7 で開発していますが、他のバージョンではテストしていません)。

設定:

  1. UIViewController( にリンクされているUINavigationController) には、次のものがあります。
    1. メソッドに接続された右側の検索ボタンを持つUINavigationItem親からの1UINavigationControllerUIBarButtonItemshowSearchbar
    2. を保持するその下の追加のUINavigationItemUISegmentedControl
    3. 1UITableViewUISearchDisplayControllerヘッダーにドラッグ アンド ドロップ
    4. ViewDidLoad、追加しましたself.tableView.contentOffset = CGPointMake(0, 44);
  2. -(IBAction)showSearchbar{ [self.searchDisplayController setActive:YES animated:YES]; }

上記のすべてで、ビューをロードするとすぐに+ (上記の 1.2) のUISearchBar後ろに隠れます - これは予想どおりであり、意図したとおりです。UINavigationItemUISegmentedControl

ただし、次の 2 つの異なる動作が見られます。

  1. が表示されるUITableViewまで を下にドラッグし、 のをクリックするか、検索ボタン (上記の 1.1) をクリックすると、が表示されます。これが発生すると、両方の が画面の外に移動し、が短くなり、[キャンセル] テキスト ボタンが表示されます。[キャンセル] ボタンをクリックすると、が非アクティブになります - これは予期されることです。 UISearchBarUITextFieldUISearchBarUISearchDisplayControllerUINavigationItemUITextFieldUISearchDisplayController
  2. ただし、検索ボタンをクリックして を表示する前に をドラッグして表示しないと、[キャンセル] ボタンをクリックしても機能しません。代わりに、それはあたかも触れているかのようです。UITableViewUISearchBarUISearchDisplayControllerUITextField

showSearchbarメソッドをに変更してみまし[self.searchBar becomeFirstResponder];たが、何も変わりません。

2 番目の動作では、UISearchDisplayControllerがアクティブな場合、[キャンセル] ボタンが存在しないかのように表示されます (UISearchBarがまだ にある場合のの状態のようにUITableView)。

キャンセルボタンを機能させる方法についてのアイデアはありますか?

4

0 に答える 0