2011-12-16 33 views
1

誰でも、そのxibファイルにルートを持ち、uitableviewをサブビューとして持つTableViewControllerを持つことができますか? 私はTVControllerが何とかUITableViewがエリア全体を占めると仮定していると思います。 なぜですか? 私は、主な領域としてUITableViewを使用して、一種のサイドと下部のタブ付きインターフェイスを構築する必要があります。タブを押すと、fetchedresultsコントローラなどの述語が変更されます。 これは、データモデルのデータカテゴリの幅と深さのためです。私は、メニュー構造を多く平坦化する必要があります...テーブルやnavbarのコントローラ構造では、ユーザエクスペリエンスは常により深い洞窟に沈むようなものになります! 私のアイデアは、他のパラダイムで試され、真実です... iOSではAppleの道やハイウェイのように見えます。私はもちろん、うんざりのないアップルとOKです。 しかし、私は本当にこれを作成したいと思います。 私はxibで完全な新しいtableviewcontrollerを追加して、IBのUITableViewを削除し、UIViewとUITableViewをサブビューとして置き換えて、デリゲートをファイルの所有者にフックアップしました。 私はそれを参照したいときのためのIVのtableViewを作成し、再びIBUITableViewとTableViewControllerを関連付ける

でそれを実行しようとし、それをフックするIBを使用し、それが [のUITableViewController loadViewメソッド]が​​「TabbedTableController」ペン先をロードした...ということwhinesがなく、 UITableViewを取得できませんでした。 実際に問題が何であるかを頭に浮かべているようには思えません。 これ以上UITableViewをフックすることはできません。

助けがあれば助かります。 ^) また、なぜそうでなければならないのですか?このUITableViewフルスクリーンのものはどれくらい厳格ですか?できるならば 私に教えてください。私が読んだドキュメントは望みません。

よろしくキース

答えて

2

AのUITableViewControllerは、ルートビュー(すなわちコントローラのview性)従って、テーブルビュー画面を満たす、のUITableViewであろうと仮定しません。 UITableViewと他のトップレベルビューを組み合わせたビューが必要な場合は、もう少し作業する必要がありますが、難しくありません。

ビューコントローラはUITableViewをサブクラス化しません。代わりに、次の操作を行います。

@interface MyViewController : UIViewController 
    <UITableViewDelegate, UITableViewDataSource> 
@property (nonatomic, weak) IBOutlet UITableView* tableView; 

Interface Builderでは、必要なその他のコントロールをUITableViewにドロップします。テーブルビューは、任意のサイズで、ビュー階層内の任意の場所に配置できます。 Interface Builderでは、テーブルビューからVCにctrl-ドラッグしてdelegatedataSourceアウトレットを設定し、VCからテーブルビューにCtrl +ドラッグしてtableViewコンセントを設定します。 cellForRowAtIndexPathなど

UITableViewControllerは、多かれ少なかれだけで、すべてのあなたのための単一のユニットにパッケージ化上記の作業のです:

あなたのビューコントローラの実装は、一般的なテーブルビューコントローラの実装でなければなりません。

+0

もちろん、ありがとうございます。 まだその制限が理解できない –

+0

EDIT:はい私は今、なぜこの制限がそうであるかについての反射について理解しています。 サブクラス化。 UITableViewControllerはViewControllerサブクラスですが、必要なデリゲートとデータソースに準拠しています。それで、なぜ誰かがそのような特定の理由のために作られたものを変更したいのですか?あなた自身を作る。どのように動作するかについての私の遅い実現について教えてください。改造された.NETコーダーでなければなりませんか? もう一度ありがとう、エスカー –

関連する問題