iOs设备特定的资源不工作-~iPad加载默认的XIB-通用应用程序



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

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

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

在过去的几周里,我读到了很多有类似问题的帖子,这个Stack Overflow线程回答得最清楚,并包含指向苹果文档的链接。所以我知道它对其他人有效,并且有文档记录。

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

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

你知道我错过了什么吗?

非常感谢你的帮助!

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

可以根据名称自动完成,无需担心。唯一的问题是您需要切换命名约定。MainView.xib将是你的iPad xib,MainView~iphone.xib将成为你的iphone xib。然后它应该非常适合您,您不必做任何事情,只需进行alloc/init。

你可以在这里查看我关于这个主题的另一个答案:iOS:使用设备修饰符加载xib文件?

最新更新