0

これで髪を抜いています。TableViewの2つのレベルを持つNavigationControllerがあります。各TableViewは独自のNIBファイルにあります。最初のレベルは単にリストを表示します。セルを選択すると、ユーザーはより詳細なリストを含む第2レベルのTableViewに移動します。検索バーを表示したいのは、この2番目のレベルのTableViewです(実際には、SearchDisplayControllerも使用しています)。SearchBarをテーブルと一緒にスクロールさせたいので、TableViewに追加しました。

以下に、2つのスクリーンショットを表示しています。1つ目は、InterfaceBuidlerの第2レベルのテーブルビューです。2つ目は、実行時の2番目のレベルのテーブルビューです。何らかの理由で、検索バーは実行時に表示されません。

まったく新しいプロジェクトを最初から作成しようとしましたが、同じことが起こります。NavigationControllerにプッシュされたNIBにSearchBarが表示されない理由がわかりません。

質問する前に、SearchBarを第1レベルのTableViewに配置すると、問題なく表示されます。はい、TableView自体に追加しているので、表示する必要があるビューの一部です。

ヘルプ!私は何が間違っているのですか?

XIBファイル

これは、XIBがプッシュされた後に実際に表示されるものです...

SearchBarが表示されませんか?

4

3 に答える 3

1

さて、私は自分の質問に答える必要があります。私はそれを削除することを考えました、しかしおそらくこれは他の誰かを助けるかもしれません。私は本当にこれに髪を抜いた。それは、iPhoneの開発がどのように機能するかについての根本的な誤解ほど、私が間違ったことをしたためではありませんでした。

一言で言えば、問題はTableViewControllerをインスタンス化した次のコード行にありました。

self.downloadDetailViewController = [[DownloadDetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];

XCodeを使用して新しいクラスを作成する場合、以下を使用できます。

「追加->新しいファイル->CocoaTouchクラス->UIViewControllerサブクラス->UITableViewControllerサブクラスおよびユーザーインターフェイス用のXIBを使用」

問題は、コードにUITableViewControllerを使用するように指示するまで、NIBはUITableViewControllerとはまったく関係がないことです。私には、これはXCodeのバグのように見えるか、少なくとも直感に反するもののように見えます。開発環境で3つのファイルすべてを一緒に作成する場合、それらが一緒に機能することは意味がありますが、そうではありません。

代わりに、解決策は次のようにコード行を変更することです。

self.downloadDetailViewController = [[DownloadDetailTableViewController alloc] initWithNibName:@"SecondaryView" bundle:[NSBundle mainBundle]];

うまくいけば、これは他の誰かを助けることができます...

于 2010-12-09T02:33:51.697 に答える
0

問題は、検索バーをtableViewに追加しているため、表示されていないことだと思います。

テーブルビューに追加せずにそのsearchBarを追加してみてください。つまり、テーブルビューを少し下に移動し、検索バーをビューに追加します(テーブルビューではありません)。

于 2010-12-07T05:21:27.503 に答える
0

ダウンロードビューコントローラーのタブバーコントローラーの下にあるNibNameプロパティを設定することもできます。実際、クラス名を使用してクラスを設定すると、ビューが自動的に作成され、手動で作成する必要はありません。

于 2011-06-29T00:14:09.277 に答える