0

私のアプリでは、テーブルを「フルスクリーン」で表示したかったので、UITableViewController のサブクラスを作成しました。テーブルを表示したいときは、インスタンス化して を使用するだけpushViewController:animated:です。実際にモーダルとして表示することにしたので、「完了」ボタンのあるナビゲーション バーを表示したいと思います。これは、単なるテーブル以上のものになるため、これを UITableViewController サブクラスではなく UIViewController サブクラスにする必要があることを意味すると思います。ただし、これが実行できるかどうかはよくわかりません。xib を作成しましたが、Xcode はその xib を使用して .h ファイルに IBOutlets を作成することを許可していないようです。そのため、この 2 つが「接続」されているとは思いません。

私は以前にこの問題に遭遇し、新しい UIViewController サブクラスと xib を作成し、必要なものすべてを UITableViewController サブクラスのファイルから新しいサブクラスのファイルにコピー アンド ペーストするだけで回避しました。しかし、それがハックで不快な解決策であることは、今でもわかっています。このようなことを適切に行う方法を知っている人はいますか?

また、将来この問題を回避するには、今後このようなトップレベルのビューを作成しないで、使用するものpushViewController:animated:や使用するものすべてpresentModalViewController:animated:が UIViewController サブクラスであることを確認する必要がありますか? それとも、私がやってきたことをしても安全ですか?

4

1 に答える 1

1

質問で言及したいくつかのことは、いくつかの誤解を示しています。まず、テーブル ビュー コントローラーをプッシュする場合、それをナビゲーション コントローラーに埋め込む必要があるため、ナビゲーション バーが表示されます。それが目的の場合は、このバーに完了ボタンを追加できます。変化する。コードをリファクタリングする必要はありません。

テーブル ビュー コントローラーの代わりに UIViewController を使用する場合は、ペン先を接続できるはずです。nib のファイル所有者のクラスを UIViewController クラスに変更しましたか? それが終わったら、コンセントを接続できるはずです。

テーブル ビュー コントローラーからビュー コントローラーにコードをコピー アンド ペーストすることについて、「ハッキー」なことは何もありません。これらすべてのファイルを書き出すのではなく、常にこれを行っています。

最後の質問で何を尋ねているのかわかりません。テーブル ビューを画面に表示する方法 (プッシュまたはプレゼンテーション) は、表示しているものがテーブル ビュー コントローラーであるかビュー コントローラーであるかとは関係ありません。ニーズに最も適したものを使用する必要があります。

于 2013-01-30T17:11:25.497 に答える