为 iPad 或 iPhone 加载单独的 XIB 时出现问题
我无法弄清楚如何在通用应用程序中加载适用于 iPad 或 iPhone 的单独 XIB。
将 Xcode 项目转换为 Universal 并具有单独的主视图界面非常容易。
我的问题是辅助视图并使其具有适用于 iPad 和 iPhone 的单独界面。
请提供您可以提供的任何帮助,因为我已经在这个问题上工作了好几天但没有成功。提前致谢!
Im having trouble figuring out how to load a separate XIB for iPad or for iPhone in a Universal app.
Its easy enough to convert the Xcode project to Universal and have separate Main view interfaces.
My problem is the secondary view and getting it to have separate interfaces for both iPad and iPhone.
Please offer any help you can give as I have been working on this issue for days without success. Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我知道@indragie 的答案是一个非常常见的答案,但这是一种常见的误解,它会导致您比实际需要做的工作多得多。
只要您以某种方式命名 xib 文件,就会自动为 iPhone 或 iPad 选择它们。查看我在另一篇文章中对同一问题的回答:
iOS:使用设备修饰符加载 xib 文件?
I know that @indragie's answer is a very common one, but it's a common misunderstanding that will cause you a lot more work than you actually need to do.
As long as you name the xib files a certain way, they will be automatically selected for either iPhone or iPad. Check out my answer to this same problem on another post:
iOS: Using device modifiers for loading xib files?
只需添加一个名为 MainView~ipad.xib 的文件即可在 iPad 上运行时加载此 iso MainView.xib 。
Just add a file named MainView~ipad.xib makes it load this one i.s.o. MainView.xib when running on a iPad..
您可以使用
UI_USER_INTERFACE_IDIOM()
检查应用程序是否在 iPad 或 iPhone/iPod touch 上运行:有关加载 NIB 文件的更多信息,请阅读 Apple 的 Nib 文件资源编程指南。您可能需要专门查看以编程方式加载 Nib 文件部分,其中展示了如何使用
NSBundle
从代码中以编程方式加载 NIB。然后,您可以将其与上面的代码结合使用,以根据您运行的设备正确加载正确的 NIB。You can use
UI_USER_INTERFACE_IDIOM()
to check whether the application is running on an iPad or an iPhone/iPod touch:For more information on loading NIB files, read Apple's Resource Programming Guide on Nib Files. You may want to specifically check out the Loading Nib Files Programmatically section which shows how to programatiically load a NIB from within your code using
NSBundle
. You can then use this in conjunction with the above code to correctly load the proper NIB depending on which device you're runining on.