-2

アプリに同じタイプのテーブルビューコントローラーが何度も必要であり、何度も使用できる、より汎用的なテーブルビューコントローラーを作成したいと考えています。

Doneこれらのテーブルビューコントローラーは非常にシンプルで、配列の内容のみを表示し、選択したテーブルビューセルにチェックマークを付け、ツールバーのボタンをタップした後、選択したテーブルビューセルのインデックスを呼び出し元のビューコントローラーに返します。 。

現在、ストーリーボードでこれらのテーブルビューコントローラーをそれぞれ直接作成し、セグエを使用してインスタンス化します。

これをコードのみで(ストーリーボードやxibsを使用せずに)行うことは可能でしょうか?

それらをインスタンス化してナビゲーションコントローラースタックにプッシュするための最良の方法は何ですか(それぞれがビューコントローラーに表示されます)。

ここに画像の説明を入力してください

4

2 に答える 2

1

これをコードのみで (ストーリーボードや xib を使用せずに) 行うことは可能でしょうか?

はい。ストーリーボードまたは .xib ファイルで実行できることはすべて、コードで実行できます。

MyViewController *vc = [[MyViewController alloc] initWithNibName:nil bundle:nil];

nil注: ビュー コントローラーのデフォルトの動作は、上記の例のように、.xib 名を渡すと、ビュー コントローラーのクラスと同じ名前の .xib からビューをロードすることですMyViewController.xib。したがって、上記の行はコードでビュー コントローラーを作成しますが、引き続き .xib からビューを読み込みます。ビューをプログラムでも作成したい場合は、オーバーライドします-loadView

于 2012-11-12T20:21:54.890 に答える
1

コードでこれを行うのは簡単です。通常どおり (extend )、View Controller クラスを作成しますUITableViewController。同じテーブル ビュー データ ソースとデリゲート メソッドをすべて実装します。それはすべて同じです。

テーブル ビュー コントローラーを使用する場合は、次のようにします。

MyTableViewController *vc = [[MyTableViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];

私はあなたのメソッドを次のように定義しますMyTableViewController init

- (id)init {
    if ((self = [super initWithStyle:UITableViewStyleGrouped])) {
        // any other initialization
    }

    return self;
}

ところで - 私は 100 以上のビュー コントローラーを含むアプリを持っていますが、インターフェイス ビルダーやストーリーボードを使用したことはありません。それはすべてコードです。

于 2012-11-12T20:25:50.527 に答える