昨天下载了6.1sdk [self.tabBarController presentViewController:...不起作用

时间:2013-02-04 21:59:37

标签: iphone ios xcode

我升级到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及以下模拟器仍然正常运行。

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

enter image description here

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

1 个答案:

答案 0 :(得分:0)

知道了我的印象是在我的xib名称中添加~iPad / ~iPhone适用于一个通用应用程序,可以选择自动使用哪个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];
}