-3

我正在制作一个最初只是 iphone 的通用应用程序,所以我将 xib 文件转换为 ipad xib 文件,尽管我不知道如何调用它们

我环顾四周,虽然我不知道如何使用它,但这是我发现的:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        self.viewController = [[LSViewController alloc] initWithNibName:@"LSViewController_iPhone" bundle:nil];
    } else {
        self.viewController = [[LSViewController alloc] initWithNibName:@"LSViewController_iPad" bundle:nil];
}
4

2 回答 2

2

您提到的代码是正确的..

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    self.viewController = [[LSViewController alloc] initWithNibName:@"LSViewController_iPhone" bundle:nil];
} else {
    self.viewController = [[LSViewController alloc] initWithNibName:@"LSViewController_iPad" bundle:nil];

}

您必须创建 2 个 xib(UI) 文件,一个用于 iPhone,第二个用于 iPad,两者的类名将相同。

在上面的代码中,LSViewController_iPhone 用于 iPhone,LSViewController_iPad 用于 iPad。现在,给定的 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 条件检查设备类型并相应地加载 xib 文件。

于 2013-08-05T11:01:35.887 回答
1

其实很简单。如果您对 ipad 和 iphone 使用两个单独的 xib,则只需为 ipad 使用后缀~ipad,并在您的 xib 文件名上仅使用 iphone 的基本名称。例如:用于 iphone xib 的 LSViewController.xib 和用于ipad xib 的LSViewController~ ipad.xib。操作系统会根据当前设备(iphone/ipad)自动加载所需的xib。您无需编写单行代码来加载通用应用程序的 xib。希望您已经在应用目标的“摘要”选项卡下的“设备”类别中更改为“通用”。

于 2013-08-04T19:05:29.807 回答