我无法在任何地方找到一个好的答案。我正在为我的iPhone应用程序使用UINavigationController,所有内容都是以编程方式生成的,Interface Builder中没有任何内容。我正在尝试使用UISplitViewController和我现有的UINavigationController将我的应用程序移植到iPad,但我不确定我的程序逻辑应该分离iPhone或iPad的视图控制器。
我是否设置了我的主文件以使用其他应用程序委托,还是使用相同的应用程序委托并在其中有条件地设置用户界面?
除此之外,每当我尝试在模拟器上编译我的应用程序时,它都无法识别UISplitViewController,甚至无法识别该类是否存在。
可以请某人把我放在正确的方向,记住我没有使用任何xibs吗?
答案 0 :(得分:20)
如果您想查看使用拆分视图的完全编程的iPhone / iPad界面示例,可以下载我的应用程序Molecules的源代码。
在该应用程序中,我使用一个应用程序委托,但我根据存在的用户界面习惯用法(iPad或iPhone)设置界面的方式不同。对于iPhone,我实例化一个根视图控制器,它管理该设备的适当接口。对于iPad,我首先创建一个UISplitViewController并将其附加到根窗口,然后创建我的iPad特定的根视图控制器并将其作为拆分视图控制器的详细视图(使用我用于项目选择的导航控制器)拆分视图的左侧控制器。)
同样,我建议查看该应用程序项目,看看我是如何以编程方式设置它的。该代码在BSD许可下可用,因此您可以根据需要将其复制并粘贴到您自己的应用程序中。
就您所获得的编译错误而言,您需要使用“升级iPad的当前目标”菜单选项将您的应用程序目标迁移为通用应用程序。完成后,将构建SDK设置为3.2。转到应用程序的构建设置,并将其部署目标设置为您希望通过应用程序支持的最早的操作系统(3.0是您可以使用的最远的后台)。
最后,你需要弱连接UIKit。有关如何执行此操作,请参阅我的回答here。如果您使用iOS 4.2或更高版本的SDK构建,则不再需要弱框架链接。只需检查他们的+class
方法是否返回nil
,就可以在运行时检查是否存在相应的类。