【问题标题】:How can i load the different xibs for single class? [duplicate]如何为单个类加载不同的 xib? [复制]
【发布时间】:2012-12-31 20:08:01
【问题描述】:

可能重复:
How can i load the different xibs for single class depends on current device in iOS?

我开发了一个通用应用程序。我为 iPhone 实现了该应用程序。现在我必须为 iPad 实现。我有关于数据处理的完整代码在视图控制器中,view-controller.xib 用于 iPhone。如何使用 iPad 的代码。

我为 ipad 创建了一个 xib 文件(ViewController_iPad.xib)。当我在 iPad 中运行应用程序时,我得到 ipad xib 但数据未显示。

如何获取 viewController 中的数据?

谢谢你的建议。

【问题讨论】:

  • 您是否将新 ipad xib 的文件所有者设置为您的班级?
  • 是的,我做到了..我将类名命名为 ViewController

标签: iphone ios ipad xib viewcontroller


【解决方案1】:

iOS 有一种简单的方法可以为 iPad 和 iPhone 加载不同的 NIB

如果您将 NIB 文件命名为:ViewController~ipad.xibViewController~iphone.xib,iOS 将加载相应的文件。

我只将~ipad 视图添加到我的通用项目中,这个NIB 没有任何设备说明符将被加载到所有其他设备上。

您现在可以像这样加载您的UIViewController

 [[UIViewController alloc] alloc] initWithNibName:@"ViewController" bundle:nil];

这也适用于图像:

back.png //Normal images
back@2x.png // Retina images
back~ipad.png // iPad normal image
back@2x~ipad.png // Retina iPad images

【讨论】:

    【解决方案2】:

    在应用委托中添加此方法

     +(NSString *)getNibName:(NSString *)strNibName
        {
            if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
                return strNibName;
            else
                NSLog(@"%@",[NSString stringWithFormat:@"%@_iphone",strNibName]);
                return [NSString stringWithFormat:@"%@_iphone",strNibName];
        }
    

    并在需要时调用它

        ViewController *obj=[[ViewController alloc] initWithNibName:[AppDelegate getNibName:@"ViewController"] bundle:nil];
    [self.navigationController pushViewController:obj animated:YES];
    

    【讨论】:

    • 不需要这样做,iOS 可以通过使用名称中的平台说明符,如~ipad~iphone 来为您完成。
    【解决方案3】:

    首先要检查的是 iPad xib 中的文件所有者应该与 iPhone xib 的控制器相同。然后按照您在 iPhone xib 组件中所做的所有连接进行所有连接,然后这应该可以工作。

    【讨论】:

    • 我将类名指定为文件所有者的 ViewController。但是当我在 ipad 中运行时,我的应用程序崩溃了
    • 你能把崩溃日志放上去吗
    猜你喜欢
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多