【问题标题】:Modal view after start app does not appear启动应用程序后不出现模态视图
【发布时间】:2012-01-13 09:31:56
【问题描述】:

用户必须先登录才能使用我的应用程序。我的想法是,在应用启动后,登录视图会以模态方式出现。

在 iOS 5 之前,我一直使用 .xib 文件。现在,我想将视图转换为 Storyboard 以便概览和更好地使用新功能。

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

我在应用程序委托中进行了尝试,并为 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

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

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

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

【问题讨论】:

    标签: objective-c ios ipad uisplitviewcontroller modalviewcontroller


    【解决方案1】:

    在 viewDidLoad 中推送另一个 ViewController 是很早的。也许当前 ViewController 带有动画,而您尝试向另一个 ViewController 展示动画...

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

    【讨论】:

    • 非常感谢。我自己没想到...有时解决方案很简单。再次感谢!
    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 2012-12-08
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多