启动应用程序后的模态视图不会出现

时间:2012-01-13 09:31:56

标签: objective-c ios ipad uisplitviewcontroller modalviewcontroller

在用户使用我的应用程序之前,必须登录。我的想法是,在应用程序启动后,登录视图以模态方式显示。

在iOS 5之前,我使用.xib文件。现在,我想将视图转换为故事板,以便更好地使用新功能。

该应用程序适用于splitview控制器。问题是登录视图已加载,但从未出现。

我在app委托中尝试过,我为splitviewcontroller创建了一个类,并尝试将其加载到viewDidLoad中。

代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    //load and push login
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    LoginViewController *loginViewController = [storyboard instantiateViewControllerWithIdentifier:@"loginViewController"];

    NSLog(@"login push: %@", loginViewController);
    [self presentModalViewController:loginViewController animated:YES];
    NSLog(@"done push");
}

日志:

2012-01-13 10:18:08.217 App[1101:707] login push: <LoginViewController: 0x472fe0>
2012-01-13 10:18:08.330 App[1101:707] done push

我尝试在Root或详细视图中加载它,但它可以工作,但它不是正确的地方,xcode给出了消息:

2012-01-13 10:18:08.807 App[1101:707] Unbalanced calls to begin/end appearance transitions for <MainSplitViewController: 0x464bc0>.

我的第一个想法是从登录视图开始,登录后推送splitview控制器。但我发现splitview控制器必须是根视图。

1 个答案:

答案 0 :(得分:3)

在viewDidLoad中推送另一个ViewController非常早。也许当前的ViewController会显示动画,并且您尝试使用动画来呈现另一个ViewController ...

您应该尝试将LoginController的显示移动到viewDidAppear ...