1

TTTableViewControllerThree20 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>>

アプリでもレイヤーのメモリ アドレスは同じですが、テーブル ビューのヘッダーに検索バーが表示されません。私がここで見逃しているものは他にありますか?

4

0 に答える 0