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