私は最終的にタブ、テーブル、マップなどがたくさんあるアプリケーションを構築していますが、私は非常にシンプルなものを構築したいと思っています。iPhone UITableView、UINavigationView、Interface Builder
私はナビゲーションバーとテーブルビューを表示するシンプルなアプリケーションを構築するためにXCode 3.2.5とInterface Builderを使用しています。
私はテンプレートがあると知っていますが、後で(うまくいけば)タブバーコントローラにリンクできるように各ユニットを構築したいと思います。
インタフェースビルダーからビルドしたときに、ナビゲーションコントローラとテーブルビューを正しく連携させることはできません。
私はちょうどコードの上にIBでビルドする特定の理由があります - それはいくつかの練習ですので、私は他の人を助けることができます。コードは簡単に追うことができる方法で手渡されなければならないからです。
私はmainwindow [h/m/xib]とカテゴリ[h/m/xib]という2つのファイルセットを持っています。
mainwindows.mの主なコードは次のようになります。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchoptions {
quickCats = [[categories alloc] initWithNibName:@"categories" bundle:nil];
[window addSubView: quickCats.view];
[self.window makeKeyAndVisible];
return YES;
}
私はクラスのカテゴリ」への参照としてmainwindow.hファイルの「quickCats」を宣言しました。
[h/m/xib]はUIViewController
のサブクラスで、UITableViewController
のサブクラスで、セクション数、セル数、セルメソッドを適切に返すように変更しました。
インタフェース宣言は文字通りです:
@interface categories : UITableViewController {
}
私が最初にこのを起動すると、それは私が働くことを知っているテーブルをロードし、表示されます。
私が問題を抱えているのは、ナビゲーションコントローラを動作させることです。
私はオブジェクトパネルにUINavigationController
をドロップし、その中にUITableViewController
をドラッグすると、IB画面上にnavコントローラとテーブルが同時にあるように見えるようになります。
ここで、どのように配線しても、navコントローラがテーブルビューを起動することはできません。
ファイル所有者のビューをTableView
に接続する必要があります。または、私のアプリケーションが、私がUITableView
を返さなかったと言うキャッチされない例外でクラッシュすることがあります。
私は何が欠けていますか?
私は通常、コード例を読んで、initWithRootViewController
を使ってナビゲーションコントローラを追加していることを知っていますが、これをIBとどのようにつなぎますか?
私はこれを理解しているかもしれませんが、NavigationControllerをロードする別のクラスを持つコードのみの例を作成し、initWithRootViewControllerを呼び出すことができました:initWithNibNamed:bundleの後:TableViewControllerクラスで、後でIBに出て、私がそれを働かせることができるかどうかを見てください。 – JamesB