22

ストーリーボードは初めてです。以前はコードを使用してビューを作成していました。質問があります。

ビューコントローラを作成しました

@interface FunctionViewController : UIViewController

そして、私は自分のコードを使用して追加しました

  1. フルスクリーンボタン(アルファ:0.5)
  2. 中央のポップアップのようなビュー(フルスクリーンではありません)

次に、別のViewcontrollerを作成しました

@interface PlayFunctionViewController : FunctionViewController

ポップアップのようなビューにいくつかのビューを追加します

絵コンテを使ってこれらを再現したいと思います。

FunctionViewControllerのすべてのサブクラスでフルスクリーンボタンとポップアップのようなビューをレイアウトする必要がないように、Interface Builderとストーリーボードを使用してこれらを構築するにはどうすればよいですか?

4

2 に答える 2

12

ストーリーボードのサブクラスのスーパークラスのレイアウトを継承することはできません。つまり、ストーリーボードのビューコントローラの要素を視覚的にレイアウトし、それらをコード、そのビューコントローラのサブクラス、さらには同じ他のインスタンスに接続する場合です。クラスは、個別にレイアウトする必要があり、自動的に入力または更新されることはありません。

つまり、ストーリーボードでは、ストーリーボードに追加するすべての個々のインスタンスとサブクラスのすべてのインターフェイス要素を手動でレイアウトして接続する必要があります。これにより、アプリ全体で同じクラスの複数のインスタンスを再利用し、それらを異なる方法でレイアウトできるという柔軟性が得られますが、レイアウトを継承することはできません。

サブクラスでレイアウトを継承する場合はviewDidLoad、スーパークラスのでプログラムでレイアウトを実行します。そうすれば、ストーリーボードでデザインしてレイアウトした場合でも、すべてのサブクラスにこれらのインターフェイス要素が含まれます(これらはストーリーボードですが、アプリをビルドして実行すると表示されます)。


基本的に、クラスとそのすべてのサブクラスで同じインターフェイス要素が必要な場合は、プログラムで作成します。ストーリーボードでインスタンス自体を作成および設計した場合でも、それらはすべてのインスタンスとサブクラスインスタンスに存在します。

コードとストーリーボードを混在させることができるため、ストーリーボードにいくつかの要素を作成できますが、コード内のすべてのインスタンスとサブクラスに存在する必要がある要素もあります。

于 2013-05-11T06:24:47.583 に答える
1

同様の問題が発生しました。時間がかかりましたが、デリゲートを作成して複数のViewControllerで再利用する方がはるかに優れたソリューションでした。それは「継承」の全体的なポイントを打ち負かしますが。

于 2014-09-19T07:28:55.203 に答える