Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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?_Iphone_Ipad - Fatal编程技术网

如何为iPhone+;一个通用版本的iPad?

如何为iPhone+;一个通用版本的iPad?,iphone,ipad,Iphone,Ipad,问题:在我的iPhone应用程序代码中,我以编程方式定位和设置了很多视图的动画。对于iPad,我想提供一个完全不同的用户界面,但也需要编程。我不喜欢使用Xib文件。我如何制作不同的视图和视图控制器,并根据它是iPad还是iPhone加载它们?最干净的方法是什么?您只需指定设备标识符,您可以通过添加字符串“~iphone”或“~ipad”来实现。因此,对于视图控制器,这将是;“MyViewController~iphone.m”和iPad“MyViewController~iPad.m”您只需指定

问题:在我的iPhone应用程序代码中,我以编程方式定位和设置了很多视图的动画。对于iPad,我想提供一个完全不同的用户界面,但也需要编程。我不喜欢使用Xib文件。我如何制作不同的视图和视图控制器,并根据它是iPad还是iPhone加载它们?最干净的方法是什么?

您只需指定设备标识符,您可以通过添加字符串“~iphone”或“~ipad”来实现。因此,对于视图控制器,这将是;“MyViewController~iphone.m”和iPad“MyViewController~iPad.m”

您只需指定设备标识符,您可以通过添加字符串“~iphone”或“~iPad”来完成。因此,对于视图控制器,这将是;“MyViewController~iphone.m”和iPad“MyViewController~iPad.m”

此外,如果您因编程创建仅适用于iOS 3.2及以上版本的类而遇到编译问题,您可以使用以下代码:

Class popClass = NSClassFromString(@"UIPopoverController");
if(popClass) {
    id infoPop = [[popClass alloc] initWithContentViewController:popViewController];
    [infoPop presentPopoverFromRect:CGRectMake(20, 70, 10, 10) inView:self.view permittedArrowDirections:4 animated:YES];
}

此外,如果您因编程创建仅适用于iOS 3.2及更高版本的类而遇到编译问题,则可以使用以下代码:

Class popClass = NSClassFromString(@"UIPopoverController");
if(popClass) {
    id infoPop = [[popClass alloc] initWithContentViewController:popViewController];
    [infoPop presentPopoverFromRect:CGRectMake(20, 70, 10, 10) inView:self.view permittedArrowDirections:4 animated:YES];
}

在你接受你问题的一些答案之前,我不会读你的问题。@Jacob什么问题?我有一个未被接受的问题。接受所有好的答案。很抱歉给您带来不便。在您接受一些问题的答案之前,我不会阅读您的问题。@Jacob什么问题?我有一个未被接受的问题。接受所有好的答案。很抱歉给您带来不便。您应该改用
UIUserInterfaceIdiom
。这将检测是否应该运行代码,但如果您的目标是3.2版之前的版本,则在编译过程中没有帮助。它当然可以取代测试,但仍然需要NSCLassFromString来创建目标设备可能不知道的类。您应该改用
UIUserInterfaceIdiom
。这将检测是否应该运行代码,但如果您的目标是3.2之前的版本,则在编译过程中没有帮助。它当然可以取代测试,但仍然需要NSCLassFromString来创建目标设备可能不知道的类。