5

我正在基于 Utility App 模板制作一个通用应用程序。我选择了一个通用应用程序,并且 MainView.xib 和 MainView~iPad.xib 在两种设备类型上都能正常工作。

在 iPad2 上,当我切换到 FlipsideView 时,它会加载 FlipsideView.xib,即使项目中有一个非常好的 FlipsideView~iPad.xib 文件。默认的 xib 是正常 (iPhone) 大小并显示在 iPad 的左下角。

我确实必须手动创建 FlipsideView~iPad xib。我相信我在 IB 中正确连接了 xib,因为它显示与 FlipsideView.xib 连接相同。

在过去的几周里,我阅读了很多类似问题的帖子,这个 Stack Overflow 线程回答得最清楚,并包含指向 Apple 文档的链接。所以我知道它适用于其他人并记录在案。

本节的代码与 stock Utility App 模板中的 showInfo() 方法相同。

(是的,我意识到我可以手动加载 ~iPad 版本检查 UI_USER_INTERFACE_IDIOM()。我试图弄清楚我在让 ~iPad 修改器工作时做错了什么。)

有什么我想念的想法吗?

非常感谢您的帮助!

4

2 回答 2

27

最后我找到了解决方案。这真的非常非常简单。xib 必须命名为 ~ipad 而不是 ~iPad,并且命名为 ~iphone 而不是 ~iPhone。不好的是,如果你将它们命名为~iPad,一切都在模拟器中运行,但在真实设备上却无法运行。

于 2011-12-30T11:53:39.837 回答
0

它可以根据名称自动完成,不用担心。唯一的问题是您需要切换命名约定。MainView.xib 将是您的 iPad xib,而 MainView~iphone.xib 将是您的 iPhone xib。那么它应该非常适合你,除了 alloc/init 之外你不需要做任何事情。

您可以在此处查看我关于此主题的其他答案:iOS:使用设备修饰符加载 xib 文件?

于 2011-06-12T17:33:18.003 回答