【问题标题】:Pulling Ipad xib into universal App [closed]将 Ipad xib 拉入通用应用程序 [关闭]
【发布时间】:2013-08-05 10:29:14
【问题描述】:

我正在制作一个最初只是 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];
}

【问题讨论】:

    标签: objective-c c xcode ipad xib


    【解决方案1】:

    你提到的代码是对的..

    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 文件。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2012-04-02
        • 2012-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-04
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多