web-dev-qa-db-ja.com

Xcode-XIBをViewControllerクラスに接続する方法

最初にTestViewController.hと* .mを作成しました。その後、私のTestView.xib。

ここで、xibに「はい、ファイルの所有者としてTestViewControllerクラスを使用してください」と伝える必要があります。

Xibを開き、そのfileOwnerのIdentity Inspectorに移動して、「カスタムクラス」TestViewControllerの下を選択します。

しかし、これは十分ではないようです-TestView.xibを開いて「アシスタントエディタビュー」を選択すると、分割画面の右側に対応するViewControllerが表示されます-私の場合は「TestViewController.h」 。しかし、そうではありません!

アウトレットやアクションで行うように、行をファイルにドラッグしてxibをViewControllerにバインドする必要がありますか?

58
mogio

クリックしてxibを選択します。次に、ファイルの所有者を選択します。右側の属性パネルで、3番目のタブ「Identity Inspector」を選択します。 Custom Classという名前のヘッダーがあります。そこにView Controllerの名前を付けます。この後、ファイルの所有者と要素を接続できます。

enter image description here

90
Augustine

UIViewControllerサブクラスを作成したときにまさにこのような状況に陥ったと思いますが、「UIに.xibを使用して」チェックするのを忘れていました。後で、戻って.xibを個別に作成しました。

以下は、新しいUIViewControllerと.xibを関連付けるための、より段階的な方法です。

  1. IBの左ペインのプレースホルダーの下にあるファイルの所有者を選択します。プロパティインスペクター(IBの右ペイン)で、3番目のタブを選択し、「カスタムクラス」の下の「クラス」を編集して、新しいUIViewControllerサブクラスの名前にします。

  2. 次に、左ペインで[ファイルの所有者]をCtrlキーを押しながらクリックするか、右クリックして、左ペインの[オブジェクト]部分の最上位ビューに線を引きます。 「表示」アウトレットを選択すると完了です。

これで、他のアウトレットとアクションを設定できるはずです。 View Controllerをコードでインスタンス化し、initWithNibNameとnib名を使用してロードする準備ができました。

19
Ike

View Controllerで「ビュー」アウトレット(UIView)を作成し、IBOutletとしてマークします。 (xcode内でファイルを作成するときに正しいデフォルト/パターンを使用する場合、このプロパティは既に存在するはずです。)Interface Builderで、メインビューとView Controller /ファイルの所有者のViewプロパティ/アウトレットの間にリンクを作成します。全体像を把握するために:View Controllerの作成/割り当て時に、適切なXIBファイルを使用して初期化する必要があります。これはまさに、View ControllerオブジェクトがXIBファイルから生成されたビューにバインドされる瞬間です。

17
Hermann Klecker

1)最初に、すべての人が言ったように、File's OwnerのクラスでView Controller名を指定します

2)ファイルの所有者を選択し、そこから線をドラッグして表示し、両方を接続します

3)View controllerのインスタンスを作成し、ウィンドウに追加して、コードスニペットを次のようにします。

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

4)最後に、View Controllerのビューをwindowにサブビューとして追加します。コーディングを行うには、次のようにします。

[window addSubview:[controller view]];

Appdelegateで次のスニペットを試してください

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
    [window makeKeyAndVisible];

    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
    [window addSubview:[controller view]];
 }

5)次のスニペットを使用して、ウィンドウへのビューのサイズを最大化し、ギャップが表示されないようにします

[controller.view setFrame:[[UIScreen mainScreen] applicationFrame]];

これで、期待どおりにView Controllerが表示されます...

これが役立つことを願っています...

6
Durai Amuthan.H

はい、View BuilderからViewプロパティをそのView Controllerのファイル所有者に追加する必要があります。

0
Abhishek

ファイル所有者を選択して、IDインスペクタウィンドウに移動し、ファイル所有者のクラス名をビュー.hファイルに変更します。これで接続されます。

0
Bittu