3

これが取り引きです:私はのカスタムサブクラスであるDEFacebookComposeViewControllerUIViewControllerを使用しています。このサブクラスは、xib を使用してユーザー インターフェイスをセットアップします。

ここで、いくつかの追加の GUI 要素を追加したいDEFacebookComposeViewControllerので、次のような名前のサブクラスMySubclassDEFacebookComposeViewController : DEFacebookComposeViewControllerを作成し、xib を作成すると考えました。

ただし、xibは、そのクラスのサブクラスであるため、実行すると思っていMySubclassDEFacebookComposeViewController.xibた GUI 要素を表示していません。DEFacebookComposeViewController.xib

UIViewController基本的に、サブクラス化された要素に新しい要素を追加する際の正しいアプローチは何だろうと思っていxibます。

4

1 に答える 1

3

をコピーしDEFacebookComposeViewController.xibて名前を変更MySubclassDEFacebookComposeViewController.xibし、好みに合わせて編集します。

UIViewController は、作成時にデフォルトで同じ名前の nib/xib を探します (最後にコントローラー部分がなくても)。

UIViewController のドキュメントから:

ビュー コントローラのビューを格納するために nib ファイルを使用する場合は、ビュー コントローラを初期化するときにその nib ファイルを明示的に指定することをお勧めします。ただし、nib 名を指定せず、カスタム サブクラスで loadView メソッドをオーバーライドしない場合、View Controller は他の手段を使用して nib ファイルを検索します。具体的には、適切な名前 (.nib 拡張子なし) の nib ファイルを探し、ビューが要求されるたびにその nib ファイルをロードします。具体的には、次のいずれかの名前の nib ファイルを (順番に) 検索します。

ビュー コントローラーのクラス名が MyViewController のように「Controller」という単語で終わる場合、MyView.nib のように「Controller」という単語を除いたクラス名と一致する名前を持つ nib ファイルを探します。ビュー コントローラ クラスの名前と一致する名前の nib ファイルを探します。たとえば、クラス名が MyViewController の場合、MyViewController.nib ファイルを探します。

したがって、使用するペン先を指定するか、View Controller にちなんで名前を付ける必要があります。古いペン先を追加/変更したいので、そのコピーが必要です。

DEFacebookComposeViewController.xibこれは、デフォルトでは何もないことを前提としていIBOutletsます。ある場合は、既存のペン先を変更できますviewDidLoad。があるかどうかに関係なく、ビューがロードされた後はいつでもサブビューを追加できますIBOutlets

于 2013-04-26T12:57:04.643 に答える