如何使用两个xib文件创建一个Objective-C类(一个用于iPhone,另一个用于iPad)

use*_*785 3 objective-c xib

我在我的Universal应用程序上创建了一个名为"ScreenSelectLevelViewController"的新屏幕,其中包含.h,.m和.xib文件.但我想创建2个独立的xib文件,一个用于iPhone,另一个用于iPad.因此,我复制了我的ScreenSelectLevelViewController.xib并将这两个文件重命名为这些新名称:

  • ScreenSelectLevelViewController_iPhone.xib;
  • ScreenSelectLevelViewController_iPad.xib;

在我的代码中,我打开了这样的新视图:

ScreenSelectLevelViewController *newScreen = [[ScreenSelectLevelViewController alloc] initWIthNibName:"@ScreenSelectLevelViewController" bundle:nil];
[self presentModalViewController:newScreen animated:true];
Run Code Online (Sandbox Code Playgroud)

问题是:当我在iPhone模拟器上运行时,但是当我在iPad模拟器上运行时,应用程序仍然打开这个新屏幕的xib文件的iPhone版本.有人可以帮帮我吗?

rob*_*off 7

您可以简单地重命名文件,用tildes替换下划线:

ScreenSelectLevelViewController~iphone.xib
ScreenSelectLevelViewController~ipad.xib
Run Code Online (Sandbox Code Playgroud)

然后,您在帖子中编写的代码将自动为当前设备加载正确的文件.

这在" 资源编程指南 "的"iOS支持特定于设备的资源"标题下记录.