在iPhone应用程序中隐藏已经开发的iPad类

时间:2013-08-15 13:25:29

标签: iphone ios ios-universal-app

出于开发原因,我开始开发通用的iOS应用程序,但是只想先推出iPhone版本。

除了在构建设置中将“目标设备系列”修改为“iPhone”之外,是否还有其他必要步骤阻止用户在iPad上打开已开发的iPad类/视图?

此外,用户(例如使用越狱设备)是否有可能在iPad上以iPad模式进入应用程序? (如何)这可以预防吗?

3 个答案:

答案 0 :(得分:1)

您可以设置如下条件:

if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone){

---做点什么 -

}

并注释掉加载iPad类和视图的调用

答案 1 :(得分:0)

除了修改“目标设备系列”属性之外,您不需要其他内容。我认为甚至在越狱设备上启动iPad模式的可能性也很小,但是你可以从你的项目中移除iPad文件(以及它们的依赖关系)以进行iPhone构建。我仍然认为这不是必要的步骤。

答案 2 :(得分:0)

答案取决于您如何设置现有代码。例如,如果您对当前硬件if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)执行运行时检查并根据此结果更改UI,则您必须重做一些代码,因为即使应用程序只有iPhone的界面,这种情况在iPad上仍会评估为真。

然后另一个选择是让您的类在接口之间拆分。这可能是正确完成时的最佳方法。我的意思是真的坚持MVC范式并分别制作你的两个接口,然后将每个接口链接到它自己的控制器对象,然后在一个普遍可访问的对象中为你的应用程序提供尽可能多的可重用逻辑。

如果你按照我提到的第二种方式完成了这项工作,你应该没有任何麻烦。只需将项目指向项目的iPhone / iPad版本的故事板,就会加载正确的类文件等。这使我能够直接回答您的问题。

如果您按照我列出的第二种方式设置项目,修改“目标设备系列”就是您真正需要做的事情。此外,越狱用户不应该担心访问iPad文件他们可以进去,但他们都是编译的,99%的人都不知道该怎么处理那大笔的胡言乱语。

即使他们这样做了,我也不认为有人会试图找到iPad版本的iPhone应用程序。他们知道如果一个应用程序有一个完整的iPad版本,它将只能在他们的iPad上运行。