我开发了一个通用应用程序。我为 iPhone 实现了该应用程序。现在我必须为 iPad 实现。我有关于数据处理的完整代码在视图控制器中,view-controller.xib 用于 iPhone。我如何使用 iPad 的代码。
我为 ipad 创建了一个 xib 文件(ViewController_iPad.xib)。当我在 iPad 中运行应用程序时,我得到了 ipad xib,但数据未显示。
如何获取 viewController 中存在的数据?
谢谢你的建议。。
我开发了一个通用应用程序。我为 iPhone 实现了该应用程序。现在我必须为 iPad 实现。我有关于数据处理的完整代码在视图控制器中,view-controller.xib 用于 iPhone。我如何使用 iPad 的代码。
我为 ipad 创建了一个 xib 文件(ViewController_iPad.xib)。当我在 iPad 中运行应用程序时,我得到了 ipad xib,但数据未显示。
如何获取 viewController 中存在的数据?
谢谢你的建议。。
在应用委托中添加此方法
+(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 有一个简单的方法来NIB
为 iPad 和 iPhone 加载不同的内容。
如果您将NIB
文件命名为:ViewController~ipad.xib
否则ViewController~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
对于您必须检查的第一件事是 iPad xib 中的文件所有者应该与 iPhone xib 的控制器相同。然后像在 iPhone xib 组件中那样进行所有连接,然后这应该可以工作。