内容の保証はできません。


/System/Library/frameWorks/UIKit.framework

クラス UISearchDisplayController

NSObject
  |
  +--UISearchDisplayController

概要

UISearchDisplayControllerは、サーチバーのディスプレイと、他のビューコントローラによって管理されているデータの検索結果を表示するテーブルビューを管理しています。

アプリケーションはまず、サーチディスプレイコントローラと、サーチバーやビューコントローラには検索されたオリジナルコンテンツを管理する責任があるビューコントローラを初期化します。ユーザが検索を開始した時、サーチディスプレイコントローラは、サーチインタフェースをオリジナルビューコントローラのビューの上に重ね合わせて、検索結果を表示する責任を持ちます。検索結果は、サーチディスプレイコントローラによって生成されたテーブルビューに表示されます。この時、オリジナルビューコントローラは自分自身のそれに加えて、論理的な4つのルールを有しています。これらは通常、全て同じオブジェクトによって再生され、たいていの場合それはオリジナルのビューコントローラ自身です。

1.検索結果テーブルビューのデータソース
このオブジェクトは、結果テーブルにデータを提供する責任があります。

2.検索結果テーブルビューのデリゲート
このオブジェクトは、特に検索結果のアイテムでユーザがどれを選択しているかを返す責任があります。

3.サーチディスプレイコントローラのデリゲート
このデリゲートは、UISearchDisplayDelegateプロトコルに準拠しています。デリゲートには、検索の開始または終了のようなイベントが生じた時や、検索インタフェースが表示または非表示にされたときに通知が行われます。検索文字列や検索範囲の変更に便利で、検索結果テーブルビューは再読み込みすることが可能です。

4.サーチバーのデリゲート
このオブジェクトは、検索条件の変化に対応する責任があります。

一般的には、ビューコントローラからサーチディスプレイコントローラを初期化して(通常UITableViewControllerのインスタンス)リストを表示します。サーチディスプレイコントローラのビューコントローラや検索結果のデータソース、デリゲートは自身で設置します。

 
searchController = [[UISearchDisplayController alloc]
                         initWithSearchBar:searchBar contentsController:self];
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;
 

もしこのパターンに従う場合は、テーブルビューデータソースとデリゲートメソッドを確認して、テーブルビューの引数にメッセージを送信しているテーブルビューを決定してください。

 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 
    if (tableView == self.tableView} {
        return ...;
    }
    // tableView == searchController.searchResultsTableView
    return ...;
}
 

重要:複数のビューコントローラまたはサーチバーがある場合、一度に1つのサーチディスプレイコントローラに関連付けることができます。もし、サーチディスプレイコントローラが(例えば、メモリ警告に応答して)破壊された場合、新しいサーチディスプレコントローラを生成して、オリジナルビューコントローラまたはサーチバーに関連付けることが可能です。

タスク

初期化

– initWithSearchBar:contentsController:

検索インタフェースの表示

active property
– setActive:animated:

設定

delegate property
searchBar property
searchContentsController property
searchResultsTableView property
searchResultsDataSource property
searchResultsDelegate property

プロパティ

active

検索インタフェースが表示状態を指定する。

@property(getter=isActive) BOOL active

delegate

コントローラのデリゲートを指定する。

@property (nonatomic, assign) id<UISearchDisplayDelegate> delegate

searchBar

検索バーを指定する。

@property (nonatomic, assign) UISearchBar *searchBar

searchContentsController

検索されるコンテンツを管理しているビューコントローラを指定する。

@property (nonatomic, assign) UIViewController *searchContentsController

searchResultsDataSource

検索結果が表示されるテーブルビューのデータソースを指定する。

@property(assign) id<UITableViewDataSource> searchResultsDataSource

searchResultsDelegate

検索結果が表示されるテーブルビューのデリゲートを指定する。

@property(assign) id<UITableViewDelegate> searchResultsDelegate

searchResultsTableView

検索結果が表示されるテーブルビューを指定する。

@property (nonatomic, readonly) UITableView *searchResultsTableView

インスタンスメソッド

initWithSearchBar:contentsController:

指定した検索バーとコンテンツコントローラでディスプレイコントローラを初期化して返す。

- (id)initWithSearchBar:(UISearchBar *)searchBar contentsController:(UIViewController *)viewController

setActive:animated:

検索インタフェースを表示または非表示にする。オプションでアニメーションの有無を指定できる。

- (void)setActive:(BOOL)visible animated:(BOOL)animated


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-24 (日) 17:14:25 (2582d)