iPad模拟器/设备使用iPhone的故事板。

14 浏览
0 Comments

iPad模拟器/设备使用iPhone的故事板。

我已经为iPhone创建了一个应用程序,并希望将其转换为iPad,按照这个答案的步骤进行操作。

  • 复制你的iPhone-Storyboard并将其重命名为MainStoryboard_iPad.storyboard
  • 使用任何文本编辑器打开这个文件。
  • 搜索targetRuntime="iOS.CocoaTouch"并将其更改为targetRuntime="iOS.CocoaTouch.iPad"
  • 现在保存所有内容并重新打开Xcode -> iPad-Storyboard包含与iPhone文件相同的内容,但可能会被重新排列

所有步骤都正确完成,但iPad模拟器/设备仍然使用iPhone的故事板。有什么建议吗?

我已经在概要->iPad部署信息->主故事板中设置了iPad故事板。并且在main.plist->主故事板文件基本名称(iPad)中将其设置为iPad故事板。

请告诉我我漏掉了什么。

更新。有趣的是,当我从iPad部署信息中删除iPad故事板名称时,设备仍然使用我的iPhone故事板。

enter image description here

enter image description here

enter image description here

enter image description here

0
0 Comments

问题的原因:在升级应用程序为通用应用程序时,Xcode将Main nib文件基本名称(iPad)设置为Main-iPad.storyboard,而不是正确的Main storyboard文件基本名称(iPad)。

解决方法:在项目的info.plist文件中添加以下内容(Main Storyboard文件基本名称/ Main Storyboard文件基本名称(iPad))。

希望这能帮到你。

0
0 Comments

问题的原因是在iPad模拟器或设备上使用了iPhone的故事板,因此需要手动选择正确的故事板并使用适当的根视图控制器来解决这个问题。

解决方法是在AppDelegate中选择正确的故事板,并使用适当的根视图控制器进行程序化呈现。首先,在AppDelegate.h文件中声明一个UIViewController变量rvc。然后,在AppDelegate.m文件的application:didFinishLaunchingWithOptions:方法中,根据设备类型选择正确的故事板,并使用对应的标识符实例化rvc。最后,将rvc的视图添加到window上,并将window的根视图控制器设置为rvc。

下面是实现的代码:

AppDelegate : UIResponder 
{
    UIViewController *rvc;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"IPAD_Storyboard" bundle:nil];
       rvc = [storyboard instantiateViewControllerWithIdentifier:@"identifierForController"];
    }
    else {
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
       rvc = [storyboard instantiateViewControllerWithIdentifier:@"identifierForController"];
    }
    [self.window addSubview:rvc.view];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

然而,这种方法并不是最佳的方式,但是可以解决你遇到的问题。这种方法已经过时了,现在推荐使用以下代码替换addSubview行:

[self.window setRootViewController:rvc];

这样就可以解决iPad模拟器或设备上使用iPhone故事板的问题。希望这能帮到你。

0