ios - 我应该如何从 TabBarController 呈现模态视图 Controller

标签 ios uitabbarcontroller modalviewcontroller

我有一个应用程序,其初始场景是一个带有 3 个选项卡的选项卡栏 Controller 。我创建了一个 uitabbarcontroller 类并将其设置为该场景 (MainTabViewController)。

在该类中,我从 viewDidAppear 方法调用 presentLogin,该方法如下:

- (void)presentLogin{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    if (![prefs stringForKey:@"storedUser"] && ![prefs stringForKey:@"storedPass"]) {
        NSLog(@"No user prefs stored");

        // BUT WAIT, before all this, lets pop up a view controller for user registration
        UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
        ModalViewController *popupController = [sb instantiateViewControllerWithIdentifier:@"ModalViewController"];
        [self presentViewController:popupController animated:YES completion:nil];

    } else {
        NSString *storedUser = [NSString stringWithFormat:@"User:%@",[prefs stringForKey:@"storedUser"]];
        NSString *storedPass = [NSString stringWithFormat:@"User:%@",[prefs stringForKey:@"storedPass"]];
        UIAlertView *internetAlert = [[UIAlertView alloc] initWithTitle:storedUser
                                                                message:storedPass
                                                               delegate:self
                                                      cancelButtonTitle:@"Cancel"
                                                      otherButtonTitles:@"Ok", nil];
        [internetAlert show];

    }
}

但是 modalVC 由于某种原因没有显示。我得到这个崩溃日志:

Attempting to begin a modal transition from <MainTabViewController: 0xa55d0d0> to <ModalViewController: 0x15e2b5e0> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed

最佳答案

我相信您会收到此错误,因为在您呈现模态 Controller 的同时,选项卡栏 Controller 将 Controller 的 View 放在屏幕上的第一个选项卡中。不是从选项卡栏 Controller 中显示它,而是在第一个选项卡中的 Controller 的 viewDidAppear 方法中显示它。在没有动画的情况下调用它可以在不看到第一个选项卡 Controller 的情况下看到模态视图 Controller 。

关于ios - 我应该如何从 TabBarController 呈现模态视图 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674520/

相关文章:

ios - Unity 在 iPhone 上的 GetCloudProjectId() 崩溃

ios - 如何在 iOS 中编码流式视频?

ios - Swift:如何使选项卡 View Controller 按钮不显示?

ios - 修改moreNavigationController中 "Edit" View 的背景色?

模态视图的 iOS7 状态栏字体颜色

ios - 隐藏在模态视图中的状态栏(在全屏演示中)

ios - 如何让数据管理器告诉 View Controller 重新加载集合

使用 Core Data 和 Magical Record 进行 iOS 应用程序单元测试

ios - 捕获 UITaBbarViewController 项目选择以决定显示它

ios - Retina 3.5 在模态视图中旋转到 UIInterfaceOrientationLandscapeLeft 后原点错误