Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将iPad XIB/VIEW添加到iOS 4中的“基于视图的应用程序”_Iphone_Ipad_Xcode4_Xib - Fatal编程技术网

Iphone 将iPad XIB/VIEW添加到iOS 4中的“基于视图的应用程序”

Iphone 将iPad XIB/VIEW添加到iOS 4中的“基于视图的应用程序”,iphone,ipad,xcode4,xib,Iphone,Ipad,Xcode4,Xib,我在XCode4中创建了一个基于视图的应用程序,并试图按照苹果公司的预期方式进行代码和UI设计 因此,我在AppNameViewController.xib中设计了UI,它运行良好;现在我想让它成为一个通用的应用程序,也可以在iPad上运行。我将应用程序目标>>摘要>>设备从iPhone改为Universal,神奇的是XCode自动创建了MainWindow-iPad.xib Apple,非常好。。。,但是,由于我在AppNameViewController.xib上设计了应用程序的第一个屏幕,

我在XCode4中创建了一个基于视图的应用程序,并试图按照苹果公司的预期方式进行代码和UI设计

因此,我在AppNameViewController.xib中设计了UI,它运行良好;现在我想让它成为一个通用的应用程序,也可以在iPad上运行。我将应用程序目标>>摘要>>设备从iPhone改为Universal,神奇的是XCode自动创建了MainWindow-iPad.xib Apple,非常好。。。,但是,由于我在AppNameViewController.xib上设计了应用程序的第一个屏幕,而不是在MainWindow.xib上,当我在iPad模拟器上运行应用程序时,我得到了一个丑陋的屏幕,其中我的UI对象大小和位置被扭曲了,它们的大小仍然是为iPhone设置的,因此它们都在屏幕的左上角破碎了

在我以前的应用程序中,我使用下面出现的代码区分AppNameViewControllerForIPHONE.xib和AppNameViewControllerForIPAD.xib;它是从AppDelegate.m文件完成的,但在新的基于XCode视图的应用程序模板中,AppDelegate根本不经过initWithNibName方法

我在XCode 3上使用的代码不能在XCode 4上使用:


长问题。。。不过,有人知道应该怎么做吗?我应该在哪里设计iPad用户界面,或者有没有办法轻松地将iPhone xib转换为iPad用户界面?

您必须遵循Apple speak中为info.plist中的NSMainNibFile键指定的新命名方案习惯用法。例如,如果将NSMainNibFile设置为MainWindow iPhone,则ipad的xib将为MainWindow ipad


在基于视图的应用程序中,同样的命名约定应该适用于我现在无法测试的视图,安装新的xcode。

我很困惑——在代码上面,听起来您需要帮助确定要加载哪个nib。在代码下面,听起来你在问如何设计iPadUI。请澄清您的问题。RyanR,我创建了一个基于视图的应用程序,并在设备系列中选择了iPhone。我在xib文件上设计了UI。现在我想添加一个iPad xib,但我不知道如何将应用程序定向到它。你必须要到一个通用应用程序。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

viewController = [[AppViewController alloc] initWithNibName:@"AppViewControllerIPAD" bundle:[NSBundle mainBundle]];

}

else {

viewController = [[AppViewController alloc] initWithNibName:@"AppViewControllerIPHONE" bundle:[NSBundle mainBundle]];

}