如何使用iPhone SDK中的标签栏控制器设置视图插座

时间:2009-03-24 08:48:54

标签: iphone

我在Xcode中创建了一个简单的标签栏应用程序。

默认标签栏有2个标签栏项。我添加了第三个标签栏项,并将其视图控制器属性设置为我创建的视图,随后保存为名为ThirdView.xib。

当我尝试运行时,前两个默认选项卡工作正常。我添加的第三个抛出了这个错误:

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "ThirdView" nib but 
the view outlet was not set.'

我道歉,因为我是一个巨大的iPhone-SDK n00b,但没有点击和拖动和控制点击拖动的方式允许我在我创建的第三个视图上设置视图插座。

3 个答案:

答案 0 :(得分:2)

我在10分钟前遇到类似的问题,它是未保存的xib文件:)。由于某些原因,XCode在一次命中运行时不会要求保存xib文件。

但如果不是这样,我会仔细检查视图是否确实在xib文件中连接。

要执行此操作,请将ThirdView.xib打开为纯文本文件(右键单击>打开为>纯文本文件) 并搜索文字:“> view<”。如果视图已连接,您应该找到类似于以下代码的内容:

<object class="IBConnectionRecord">
    <object class="IBCocoaTouchOutletConnection" key="connection">
        <string key="label">view</string>
        <reference key="source" ref="372490531"/>
        <reference key="destination" ref="191373211"/>
    </object>
    <int key="connectionID">15</int>
</object>

如果找不到,这可能意味着问题是由Interface Builder中的错误引起的。然后,您可以尝试手动添加连接。如果是这种情况,请告诉我。

答案 1 :(得分:1)

检查您传递给initFromNib的文件名(或者您正在加载控制器)。输入错误或包含扩展名可能会产生此消息。

答案 2 :(得分:0)

使用XCode 4,我收到此错误,因为我没有为标签栏控制器上的“第三个”按钮设置NIB名称。我通过选择“第三个”按钮而不是按钮中的标签栏项来修复它,并使用属性检查器设置NIB名称。