0

我升级到 x code 4.6 SDK 6.1 现在

[self.tabBarController presentViewController:loginViewController animated:YES completion:nil];

正在穿线。

此代码在 6.0 及以下模拟器上与 6.0 一起使用,但现在 6.0 和 6.1 崩溃,而 5.1 及以下模拟器仍然运行良好。

基本上在我的应用程序中,我调用一个标签栏,然后在其上运行一个登录屏幕,直到它被解雇。

在此处输入图像描述

编辑:我没有在任何地方使用 AutoLayout。

4

1 回答 1

0

明白了,我的印象是,将 ~iPad/~iPhone 添加到我的 xib 名称将适用于通用应用程序选择自动使用的 xib。好吧,在 5.1 模拟器上它确实如此,但在 6 及更高版本上却没有。

所以这是正确的代码。

LoginViewController *loginViewController;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
    viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
    loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController~iPhone" bundle:nil];
} else {
    viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPad" bundle:nil];
    viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPad" bundle:nil];
    loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController~iPad" bundle:nil];
}
于 2013-02-05T16:08:57.430 回答