2012-08-07 72 views
1

我有一个应用程序,我构建的应构建为一个iPhone应用程序。iOS - 转换iPhone构建到iPad

现在,我被告知应用程序必须现在被普遍使用。我也必须让iPad兼容(仅限肖像模式)。我一直在寻找我的选项,因为这个项目中的XIB负载了大量的对象,所以编程式地指定坐标将是一件痛苦的事情。

我正在寻找最好的,最快的方法,我应该采取这种iPhone应用程序到iPad兼容的应用程序以及。

PS:没有mainwindow.xib文件,因为应用程序是使用不创建MainWindow.xib文件的XCode 4.3构建的。

预先感谢您。

编辑:我已经为所有的XIB为iPad制作了重复的XIB。现在,我正尝试使用命名约定,它告诉我将文件名后缀更改为MyiPadXIB〜ipad.xib,当应用程序在iPad上运行时,它将自动接受该XIB。这似乎没有发生。

当我在iPad中打开应用程序时,只出现一个小窗口(当在iPhone上运行iPhone的应用程序在iPad上运行时出现的窗口)。

对此的任何解决方案?

+0

你是说你不想重新创建所有与iPad版本的xibs。 – 2012-08-07 17:53:28

+0

如果这是唯一的,也是最好的方法,那么我在创建单独的XIB时也没有问题。 – NSFeaster 2012-08-07 18:16:59

+0

是的,我会创建单独的视图控制器。欧文的答案应该会有所帮助。 – 2012-08-07 18:24:59

回答

1

我遵循一种非常简单的方法,通过执行构建设置>目标(iPhone)>右键单击并选择重复,创建所有XIB的重复XIB。

然后,我会改变这种格式的重复xibs的名称:“iPhone XIB名称”〜ipad.xib。

系统会根据所使用的设备自动选取XIB。

0

从我所知道的(有可能是一个更快/更好的方法,我不知道的)

您可以创建单独的厦门国际银行文件为iPad

当你初始化你的视图控制器,你检查一下你是什​​么设备上,像这样

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
     self.serverSettingsViewController = [[ServerSettingsViewController alloc] initWithNibName:@"ServerSettingsViewController_iPhone" bundle:nil]; 
     self.motionJpegViewController = [[MotionJpegViewController alloc] initWithNibName:@"MotionJpegViewController_iPhone" bundle:nil]; 
    } else { 
     self.serverSettingsViewController = [[ServerSettingsViewController alloc] initWithNibName:@"ServerSettingsViewController_iPad" bundle:nil]; 
     self.motionJpegViewController = [[MotionJpegViewController alloc] initWithNibName:@"MotionJpegViewController_iPad" bundle:nil]; 
    } 

,并加载你的iPhone或iPad厦门国际银行文件(FYI确保厦门国际银行的观点是足够大的iPad)