TTTableViewController
Three20 TTCatalog サンプルに基づいてサブクラスを構築しています。TTTableViewController
そこでは、 と呼ばれる検索機能を持つサブクラスが定義されてSearchTextController
おり、テーブル ビュー ヘッダーに検索バーが表示されます。
彼らのloadView
方法は次のようになります。
- (void)loadView {
[super loadView];
TTTableViewController* searchController = [[[TTTableViewController alloc] init] autorelease];
searchController.dataSource = [[[MockSearchDataSource alloc] initWithDuration:1.5] autorelease];
self.searchViewController = searchController;
self.tableView.tableHeaderView = _searchController.searchBar;
}
TTTableView の独自のサブクラスに同じ種類の機能を再実装しようとしました。問題は、検索バーを表示できないことです。
これらloadView
を TTCatalog SearchTestController で実行します (最後の行の後)。
NSLog(@"_searchController.searchBar address %@",_searchController.searchBar.description);
NSLog(@"self.tableView.tableHeaderView address %@",self.tableView.tableHeaderView.description);
レイヤーに対して同じメモリアドレスを生成します(ビューが正しく設定されたことを意味します)
2012-07-03 12:00:02.326 TTCatalog[53493:f803] _searchController.searchBar address <UISearchBar: 0x6a5c940; frame = (0 0; 320 44); layer = <CALayer: 0x6a5ca40>>
2012-07-03 12:00:02.327 TTCatalog[53493:f803] self.tableView.tableHeaderView address <UISearchBar: 0x6a5c940; frame = (0 0; 320 44); layer = <CALayer: 0x6a5ca40>>
アプリで同じ NSLogs を実行すると、次のようになります。
2012-07-03 11:41:54.900 myApp[51991:f803] _searchController.searchBar address <UISearchBar: 0x6a43c20; frame = (0 0; 320 44); layer = <CALayer: 0x6a43ce0>>
2012-07-03 11:41:54.901 myApp[51991:f803] self.tableView.tableHeaderView address <UISearchBar: 0x6a43c20; frame = (0 0; 320 44); layer = <CALayer: 0x6a43ce0>>
アプリでもレイヤーのメモリ アドレスは同じですが、テーブル ビューのヘッダーに検索バーが表示されません。私がここで見逃しているものは他にありますか?