iOS iPad故事板未被选中
看起来,即使我指定了Xcode 5,也没有select使用iPad设备作为iPad设备。
这就是我告诉Xcode 5使用iPad的故事板:
- 我去了
General
下的项目设置 - 所选设备:
Universal
- 然后我点击
iPad
- 在
Main Interface
写下MainStoryboard-iPad.storyboard
但由于某些原因,即使我对MainStoryboard-iPad
故事板进行了更改,但是当我尝试在iPad上运行故事板时,它并未显示出来。
我的项目中只有两个故事板
MainStoryboard-iPad.storyboard
和
MainStoryboard.storyboard
任何想法可能是错误的吗?
哦,顺便说一下,当我第一次select环球时,我有一个箱子问我有关复制的事情(我从来没有仔细阅读过)。 我只是打“是” 不知道那个盒子实际上做了什么。
编辑
在我的AppDelegate.m中运行的代码
- (void)applicationDidBecomeActive:(UIApplication *)application { AppDelegate *app = [[UIApplication sharedApplication] delegate]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"mainStoryBoard"]; UINavigationController *nvc = (UINavigationController*)self.window.rootViewController; app.window.rootViewController = ivc; }
我刚刚遇到这个。
这是你需要做的步骤:
- 确保“部署信息” – >设备是“通用”
- 为iPad创build故事板(例如)MainStoryboard_iPad.storyboard
- 现在去你的Infor.plist
- 为“主要故事板文件基本名称(iPad)”添加行,并使用MainStoryboard_iPad作为string的值
现在你很好走!
希望这可以帮助! 上帝保佑
您的代码覆盖设备types的默认情节串联板。 你抓住MainStoryboard,从它实例化一个视图控制器,并将其设置为根。 这通常由故事板本身处理。 它使用您select的视图控制器作为根。 尝试删除所有的代码来手动设置故事板。
在github上查看这个项目,了解一个没有代码的故事板切换的例子: https : //github.com/danielmackenzie/StoryboardSelection
Xcode项目指向每个设备types的每个故事板,并在启动时自动select相应的板。
您需要在应用程序的info.plist中inputiPad
查看您的支持文件组的info.plist为您的应用程序。
你会看到一个iPhone的故事板,但没有一个iPad的条目。
iPhone的条目应该是这样的:
Main storyboard file base name
它应该有你的iPhone的故事板名称(无文件扩展名)作为它的string值。 像这样的东西:
iPhone-Storyboard
在pList中添加一个新的条目并input这个string作为键:
Main storyboard file base name (iPad)
确保数据types是string。
您现在可以从目标上的应用程序常规设置中select所需的iPad故事板。
我也碰到过这个,并且认为你想要一个清晰的解释和解决scheme。
有时,Xcode是相当疯狂的,不是吗? 希望这可以帮助。
//覆盖应用程序启动后的自定义点。
if (<your implementation>) { UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil]; YourViewController *yourController = (YourViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"YourViewControllerID"]; self.window.rootViewController = yourController; }
返回YES;
你的逻辑没有考虑到你的设备。 AFAIK,没有方法看你的命名后缀(“-iPad”),并自动select正确的故事板文件。
为了解决这个问题,只需更换调用,以一些逻辑来实例化您的故事板,以便根据设备select合适的故事板。
UIStoryboard* storyboard; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard-iPad" bundle:nil]; } else { storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; }
- 如何通过软件设置来点击iOS上的音量button
- 在Objective-C中运行时检测并使用可选的外部C库
- 接收重复推送通知ios9
- 如何在iOS(Xamarin C#)游戏中dynamicpopup和隐藏UIPickerView?
- 如何用定时器重复调用一个方法(重新加载…)来为一个转换设置animation
- 为具有多个目标和不同平台的项目编写Podfile
- 当不是4字节alignment时,Monotouch浮点指针会抛出NullReferenceExceptionexception
- AFNetworking 3 AFMultipartFormData获取字节数据作为响应
- BAD_ACCESS(code = EXC_I386_GPFLT)用ECDSA签名时