繁体   English   中英

迁移到通用应用程序(iPhone / iPad)

[英]Migrating to Universal app (iPhone/iPad)

我有一个旧的iPhone应用程序,现在想要将其迁移到iPad应用程序...所以我有一个XIB与一些UIWebView和iAd视图...

如何将它转换为uinversal应用程序...我只更改了设备到通用....我的意思是只添加一个新的xib说明DetailController-ipad.xib工作,即iPad会自动接受吗?

实际上在我的代码中,我有;

DetailController *detailController = [[DetailController alloc] initWithNibName:@"DetailController" bundle:nil];

那么同样的旧DetailController.xib会不会被推送?

我需要做出哪些改变?

请帮忙。

如果以编程方式加载GUI,让我们使用这些来检查设备是iPhone还是iPad。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
  // The device is an iPad running iPhone 3.2 or later.
  // [load appropriate iPad nib file]
}
else {
  // The device is an iPhone or iPod touch.
  // [load appropriate iPhone nib file]
}

在加载nib时,询问系统正在运行的设备类型,然后加载相应的nib文件。 使用这样的东西:

DetailController *detailController;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    detailController = [[DetailController alloc] initWithNibName:@"DetailController" bundle:nil];
} else {
    detailController = [[DetailController alloc] initWithNibName:@"DetailController-ipad" bundle:nil];
}

您可能还希望在不同的界面惯用法中使用您的详细视图控制器执行不同的操作,例如将视图控制器放在iPhone上的UINavigationController和iPad上的UISplitViewController

另一个选择是为iPhone和iPad提供单独的DetailController实现。 您的界面在两个界面习语中可能非常相似,一个DetailController会更好。 或者,对于iPhone和iPad版本的应用程序,您可能会有明显不同的界面,其中iPhoneDetailControlleriPadDetailController会更有意义。 例如,iPhone的较小屏幕可能需要使用UINavigationController,但较大的iPad屏幕可以在一个屏幕上包含整个界面。

编辑回复评论:

Xcode的Interface Builder部分在创建.xib文件时设置接口惯用语,阻止.xib从iPhone格式转换为iPad格式。 为iPad .xib创建一个新的界面文件。 您可以将iPhone .xib中的元素复制并粘贴到iPad .xib,然后重新连接插座并调整尺寸和位置。

您可以以编程方式创建ViewController。 只需查询设备的宽度和高度即可。 然后根据这些值放置您的项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM