Xcode - 如何将XIB连接到ViewController类

问题描述:

我首先创建了我的TestViewController.h和* .m。之后我的TestView.xib。Xcode - 如何将XIB连接到ViewController类

现在我需要告诉我的xib:“是的,请将TestViewController作为我的文件所有者”。

我打开我的xib,转到它的fileOwner的Identity Inspector并在“Custom Class”TestViewController下选择。

但是这似乎还不够 - 当我打开TestView.xib,然后选择“Assist Editor View”时,它应该在分屏的右边部分显示相应的ViewController - 在我的情况下是“ TestViewController.h”。但它不!

是否有必要将xib以任何方式绑定到其viewcontroller,方法是将行拖到文件中,就像使用插座和动作一样进行操作?

单击以选中xib。现在,选择文件的所有者。在右侧的属性面板中,选择第三个标签“Identity Inspector”。有一个名为的标题自定义类。在那里给你的视图控制器的名称。之后,您可以将元素与文件所有者连接。

enter image description here

+0

你的意思是我应该选择文件菜单中的文件,然后单击“身份检查器选项卡”?对我说“没有选择”。 – mogio

+0

这是因为xib被取消选中。再次点击文件所有者以激活身份检查器。 – Augustine

+0

我打开了我的xib,转到fileOwner的Identity Inspector并在“Custem类”TestViewController下选择。 但这似乎还不够 - 当我打通TestView.xib,然后选择“助理编辑器视图”应该调出相应的ViewController在分割屏幕的右侧部分 - 在我的情况下,“TestViewController。 H”。但它不! – mogio

是你要添加到文件视图控制器的业主从界面生成器视图属性:

+0

怎么我...我不能提请或者Controller.h文件中的任何行... – mogio

+0

走在你的TestView的界面生成器添加下课..你会发现在厦门国际银行有文件所有者只需点击上,看到在属性列表选项选中,你会发现有视图添加到与文件拥有者该视图的所有选项... – Abhishek

选择您fileownr去身份检查器窗口和文件所有者视图.h文件中的变化类名,这将连接。

+0

那是不是我做了什么? – mogio

+0

@mogio请回答mark – Bittu

+0

@mogio那么你想要什么? – Bittu

在视图控制器创建一个 “视图” 出口(UIView的)并将其标记为IBOutlet中。 (当在xcode中创建文件时使用正确的默认值/模式时,此属性应该已经存在。) 在Interface Builder中,在视图控制器/文件所有者的主视图和视图属性/插座之间创建一个链接。 仅供参考:在创建/分配视图控制器时,应该用相应的XIB文件初始化它。这是视图控制器对象绑定到XIB文件外生成的视图的时刻。

+0

谢谢赫尔曼,但这正是我想要实现的。手动完成。当我自动创建它们时,h文件没有提到xib。但仍然存在联系。我试图在不创建属性或方法的实例的情况下获得此连接。我试图理解绑定背后的机制。 – mogio

+0

你想要手动创建什么?你想不使用Interface Builder和XIB文件以编程方式创建完整视图? –

+0

或者你想在一个地方创建视图控制器,然后创建一个vew vom XIB,然后将该视图与已存在的此视图控制器相关联?为什么?你最终想达到什么目标? –

1)首先,就像每个人说,从那里类文件拥有者为视图控制器名称

2)选择文件的所有者阻力线,查看此连接两个

3)创建视图控制器的实例,并把它添加到窗口的代码片段如下,

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

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

[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]]; 

现在你会看到你视图控制器,你所期望的...

我希望这有助于....

+0

视图非常有用,谢谢。 –

我觉得我碰到的正是这种情况时,我创建了一个UIViewController子类却忘了检查“的.xib为UI”当我做到了。后来,我又分别创建了.xib文件。

这里有一个一步一步的方式到新的UIViewController和关联的.xib。

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

  2. 然后按住Ctrl键单击或在左侧窗格中文件的所有者右键单击并画一条线在左窗格中的对象部分的顶层视图。选择'视图'出口,你就完成了。

您现在应该可以设置其他网点和操作。您已准备好在代码中实例化您的视图控制器,并使用initWithNibName和您的笔尖名称来加载它。

+0

frick。在最新版本的xcode中没有“用于UI的.xib”.... – matrixugly