繁体   English   中英

选项卡式应用程序中用于视图控制器的其他NIB

[英]additional NIB for view controller in tabbed app

{使用ARC,Xcode 4.2,部署目标是iOS4.3,而不是故事板}

我从选项卡式应用程序模板开始,选择了通用平台,该平台很好地为我提供了两个选项卡的iPhone( ClassName_iPhone.xib )和iPad( ClassName_iPad.xib )的NIB文件视图,以及AppDelegate中的if语句确定要运行的内容-正是我想要的设置方式。

我想添加第3个和第4个标签,因此从第3个标签开始(一次做1个),我创建了一个新的UIViewController子类。 由于它没有一次创建两个NIB的选项,因此我选择了“ Targeted for iPad”,并且打算手动创建iPhone NIB。 我在创建的NIB文件中添加了“ _iPad”后缀,然后在用户界面视图NIB文件中添加了“ _iPhone”后缀。 然后,我在AppDelegate实现文件中为新视图控制器设置代码,以包括第3个视图控制器和选项卡,并且我使用其他视图控制器类作为指导来设置新类的代码。

对于第三个_iPhone NIB,我将视图对象从对象库中拖动到画布上,并按照其他两个_iPhone NIB进行设置。 但是当我去连接插座时,我认为应该连接的连接面板的参考插座中没有可视插座。 在这一点上,我怀疑出现了问题。

在此处输入图片说明

我尝试在模拟器中运行它,在iPad模式下可以正常工作(所有3个选项卡均可单击)。 但是在iPhone模式下,单击第3个选项卡会使其崩溃,并在线程1上显示“ SIGABRT”。很明显,我没有执行任何操作。 我在输出窗口中看不到任何提示。

作为obj-c的新手,因此不太确定这个问题,我会以为我要么:

  • 使用了错误的用户界面模板(查看)
  • 应该使用了对象库中的视图控制器对象(不是视图)
  • 或者我应该在我的视图控制器类文件中声明一些出口。

但是,如果我应该完成后两个中的任何一个,那么我的问题是,为什么iPad NIB可以正常工作,当它在NIB中明显具有视图对象并且类文件中没有声明出口时(与其他2个视图相同)两个设备的控制器)?

UITabView类是否在前两个选项卡中以某种方式预先声明了插座? 但这仍不能解释_iPad NIB为何起作用。

像往常一样,任何帮助和建议都将不胜感激,并且如果有我想念的地方的解释链接,请告诉我,因为我很高兴进行研究。

如果我做错了什么是不确定的,那么我想我最终要问的是如何为iPhone创建第二个NIB文件以与使用iPad NIB创建的类相啮合的最佳线索。

很抱歉回答我自己的问题,但是通过进一步搜索,我发现这个答案是解决方案,尽管还不是全部。 因此,我想把我所做的事情总结一下,以便其他人可以参考。

在此处输入图片说明

正如Piotr Czapla在链接的答案中解释的那样,由于某些原因,Xcode不会填充connectionRecords数据,正如您通过我的第一个红色箭头所看到的那样。 看一下工作正常的视图控制器(第二个红色箭头在其中),这就是数据的外观。 因此,答案是剪切数据并将其粘贴到NIB文件中,或键入它。 您可以在Xcode中执行此操作,方法是右键单击项目导航器中的NIB文件,然后单击“打开方式”>“源代码”,这就是您在屏幕快照中看到的内容。

我想在Piotr Czapla的说明中添加的一点是,第二个红色箭头指向的目标引用可能与您要粘贴的NIB文件不正确(不是我的)并且Xcode可能不允许您返回IB模式。 如果是这样,则需要从NIB文件中的IBUIView类获取正确的引用,如第三个红色箭头所指出的那样。 将引用复制到目标引用ref =后,如第四个红色箭头所示,一切正常,问题已解决。 然后,我可以返回到IB模式(右键单击,打开方式> Interface Builder-iOS),然后视图在模拟器中工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM