Xcode - 如何将XIB连接到ViewController类

mog*_*gio 58 xcode objective-c viewcontroller

我首先创建了TestViewController.h和*.m.然后我的TestView.xib.

现在我需要告诉我的xib:"是的,请将TestViewController类作为我的文件所有者".

我打开我的xib,转到其fileOwner的Identity Inspector,然后选择"Custom Class"TestViewController.

但这似乎还不够 - 当我打开TestView.xib,然后选择"Assistent Editor View"时,它应该在分屏的右侧部分显示相应的ViewController - 在我的例子中是"TestViewController.h" .但事实并非如此!

是否有必要通过将行拖动到文件来以任何方式将xib绑定到其viewcontroller,就像使用outlet和actions一样?

Aug*_*ine 90

单击以选中xib.现在,选择文件的所有者.在右侧的属性面板中,选择第三个选项卡"Identity Inspector".有一个名为Custom Class的标题.在那里提供您的视图控制器的名称.在此之后,您可以将元素与文件的所有者连接起来.

在此输入图像描述


Ike*_*Ike 19

我想我在创建UIViewController子类时遇到了这种情况,但是当我这样做时忘了检查"用.xib for UI".后来,我回去分别创建了.xib.

以下是将UIViewController和.xib关联起来的更为循序渐进的方法.

  1. 在IB的左窗格中的"占位符"下选择"文件"的"所有者".在Property Inspector(IB的右侧窗格)中,选择第三个选项卡并编辑"Custom Class"下的"Class",作为新UIViewController子类的名称.

  2. 然后按住Ctrl键单击或右键单击左窗格中的"文件所有者",并在左窗格的"对象"部分中的顶级视图中绘制一条线.选择"查看"插座即可完成.

您现在应该能够设置其他插座和操作.您已准备好在代码中实例化视图控制器,并使用initWithNibName和您的nib名称来加载它.


Her*_*ker 17

在视图控制器中创建一个"视图"插座(UIView)并将其标记为IBOutlet.(在xcode中创建文件时使用正确的默认值/模式时,此属性应该已经存在.)在Interface Builder中,在主视图和视图控制器/文件所有者的视图属性/出口之间创建链接.只是为了全面了解:在创建/分配视图控制器时,您应该使用适当的XIB文件初始化它.这是当前视图控制器对象绑定到从XIB文件生成的视图的时刻.

  • 您还需要单击File的所有者并将其类设置为控制器的类.然后会在其中显示一个视图插座,您可以将其连接到xib中的视图 (6认同)

Dur*_*n.H 6

1)首先就像每个人说的那样在文件所有者的类中给出视图控制器名称

2)选择文件所有者从那里拖动一行以查看这将连接两者

3)创建一个View控制器实例并将其添加到窗口,代码片段如下所示,

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
Run Code Online (Sandbox Code Playgroud)

4)最后将视图控制器的视图作为子视图添加到window.TO中,编码如下,

[window addSubview:[controller view]];
Run Code Online (Sandbox Code Playgroud)

在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]];
 }
Run Code Online (Sandbox Code Playgroud)

5)使用以下代码段最大化窗口视图的大小,以便不显示gape

[controller.view setFrame:[[UIScreen mainScreen] applicationFrame]];
Run Code Online (Sandbox Code Playgroud)

现在您将按预期看到您的视图控制器...

我希望这有帮助....