iOs 设备特定资源无法正常工作 - ~iPad 加载默认 XIB - 通用应用程序

发布于 2024-11-14 19:30:01 字数 691 浏览 2 评论 0原文

我正在制作一个基于实用程序应用程序模板的通用应用程序。我选择了一个通用应用程序,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 文档的链接。所以我知道它对其他人有效并且有记录。

此部分的代码与库存实用程序应用程序模板中的 showInfo() 方法相同。

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

我错过了什么?

非常感谢您的帮助!

I'm making a universal app based on the Utility App template. I've selected a universal app and the MainView.xib and MainView~iPad.xib work properly on both device types.

On the iPad2, when I switch to the FlipsideView, it loads FlipsideView.xib even though there is a perfectly good FlipsideView~iPad.xib file in the project. The default xib is normal (iPhone) sized and displaying in the lower left hand corner of the iPad.

I did have to create the FlipsideView~iPad xib manually. I believe I have the xib properly wired in IB as it shows identical to the FlipsideView.xib connections.

Over the last couple weeks, I've read quite a few posts with similar problems and this Stack Overflow thread answers most clearly and contains links to Apple documentation. So I know it works for others and is documented.

The code for this section is identical to the showInfo() method in the stock Utility App template.

(Yes I realize I can manually load the ~iPad version checking UI_USER_INTERFACE_IDIOM(). I'm trying to figure out what I'm doing wrong in getting the ~iPad modifier to work.)

Any ideas what I'm missing?

Thanks a ton for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

韬韬不绝 2024-11-21 19:30:01

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

in the end i found the solution. it is really very very simple.
The xib must be named ~ipad instead of ~iPad, and ~iphone instead of ~iPhone.
The bad thing is the if you name them ~iPad, everything works in the simulator but it does not work on the real device.

凹づ凸ル 2024-11-21 19:30:01

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

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

It can be done automatically based on the name, no worries. The only problem is you'll need to switch your naming convention. MainView.xib will be your iPad xib and MainView~iphone.xib will be your iPhone xib. Then it should work perfectly for you and you don't have to do anything but alloc/init.

You can check out my other answer on this topic here: iOS: Using device modifiers for loading xib files?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文