1

ビューコントローラーを再利用する方法がわかりません。いくつかのことを行うView Controllerサブクラスを作成した場合(それが何をするかは問題ではなく、ビューで必要なことを行うだけです)、別のビューで使用できますか、それとも再度サブクラス化する必要がありますか?

つまり、アプリの別の部分のビューでまったく同じ機能が必要な場合、元のビュー コントローラーを使用して、新しいビューからアウトレットを追加することはできますか? または、カスタムコントローラーをサブクラス化し、ビューに「独自の」ビューコントローラーを与える必要がありますか?

4

1 に答える 1

3

ビューコントローラ用に2つのxibを作成できます。

あなたがファイルを持っているなら...

MyViewController.m
MyViewController.h

次に、xibsを追加できます...

MyViewControllerXib1
MyViewControllerXib2

「ファイルの所有者」をMyViewControllerにするだけです。

次に、最初のXIBのUIレイアウトが必要な場合は、次のように呼び出すことができます...

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewControllerXib1" bundle:[NSBundle mainBundle]];

2番目のUIが必要な場合は、呼び出すことができます...

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewControllerXib2" bundle:[NSBundle mainBundle]];

取得するオブジェクトは同じですが、UIをレイアウトするペン先が変更されます。

別のアプローチ

ここで大声で考えてください。

ペン先なしでViewControllerを作成することもできます。

次に、これの2つのサブクラスをそれぞれペン先で作成します。これで、コードの再利用と個別のレイアウトが可能になりましたが、「マスター」コントローラーの各サブクラスを微調整することもできます。

次に、このマスタービューコントローラーから必要な数のサブクラスを作成できます。

ストーリーボードの使用

新しいViewControllerオブジェクトをストーリーボードにドラッグするだけです。クラスをビューコントローラクラスに変更し、UIを設定して、コントロールをコードなどにドラッグします。これにより、外観は異なりますが、同じ機能コードを共有する2つの画面が表示されます。

これは私が最初に言ったこととまったく同じですが、代わりにストーリーボードを使用しています。

于 2012-12-13T16:46:57.417 に答える