xcode 模拟器在尝试测试不同的故事情节时不断改变硬件设备模式
Posted
技术标签:
【中文标题】xcode 模拟器在尝试测试不同的故事情节时不断改变硬件设备模式【英文标题】:xcode simulator keeps changing hardware device modes when trying to test different storylines 【发布时间】:2013-03-11 08:52:03 【问题描述】:我的模拟器有点奇怪,我希望有人能帮助我。下面的代码在我的 AppDelegate 中。根据正在运行的设备,我有不同的故事板。设备检测代码似乎工作正常,但我在将模拟器硬件->设备保持在我想要的位置时遇到问题。
-
项目设置为“通用”,模拟器设置为
苹果手机。模拟器会自己变成iPhone模拟器
并作为 iPhone 运行。
iPad 的项目设置,iPad 的模拟器,作为 iPad 运行。放
项目回到通用,模拟器回到iPhone,模拟器
将自身重置回 iPad 并将代码作为 iPad 运行。
项目设置为 iPhone,将模拟器留在 iPad 上。作为一个运行
iPad 上的 iPhone 应用??
....以及多种不同的变体。尝试多次重新启动Mac和xcode,没有效果。如果我重置模拟器并在模拟器上而不是通过 xcode 运行项目图标,模拟器将保持在我放入的硬件模式下。有什么想法吗??
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// testing for iPad detection
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
// setting storyboard name
[[Data sharedData] setStoryboardName:@"MainStoryboardPad"];
// going to the 4" screen story board and settng it as the root controller
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboardPad" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"Intro Screen"];
// making that tab controller the root controller
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES;
else
// detecting screen size
if (([UIScreen mainScreen].scale == 2) && ([[UIScreen mainScreen] bounds].size.height == 568))
// setting storyboard name
[[Data sharedData] setStoryboardName:@"MainStoryboard40"];
// going to the 4" screen story board and settng it as the root controller
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard40" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"Intro Screen"];
// making that tab controller the root controller
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES;
else
// setting storyboard name
[[Data sharedData] setStoryboardName:@"MainStoryboard35"];
// going to the 3.5" screen story board and settng it as the root controller
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard35" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"Intro Screen"];
// making that tab controller the root controller
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES;
【问题讨论】:
【参考方案1】:如果我正确理解了您的问题,那么您遇到的问题是您在模拟器中作为 iPad 运行您的应用程序时遇到了困难,因为它不断变回 iPhone。这是因为您需要在 Xcode 的顶部工具栏中选择要在哪个模拟器中运行应用程序:
完成后,单击运行,您选择的 ios 模拟器应该会打开并运行您的应用程序。
【讨论】:
以上是关于xcode 模拟器在尝试测试不同的故事情节时不断改变硬件设备模式的主要内容,如果未能解决你的问题,请参考以下文章