从模态视图控制器返回时标签栏消失

Tab bar disappears when returning from modal view controller

我有一个奇怪的问题一直无法解决。我有一个相对较大的应用程序,它可以从 UIViewControllers 和 UITableViewControllers 连接到模态视图控制器。 UIViewControllers 似乎工作正常,但是,table 视图控制器存在不一致的问题。当我转到模态控制器时会显示选项卡栏,并且它会在模型​​视图中正确显示。但是,当我关闭模态控制器时,table 视图控制器上的标签栏有 50/50 的机会消失。背景视图一直延伸到屏幕底部。标签栏是半透明的,所以我希望背景在它后面延伸,但我不知道为什么在某些情况下(使用相同的控制器和相同的情况)可以正常工作而有些则不能。我没能找到任何模式。

在转至模态之前:

return 来自模态:

初始table视图控制器:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    if optionEnabled[indexPath.row] {
        let segues:[String] = ["profileMenuSegue", "servicesProvidedSegue", "myWorkDaySegue", "myWorkWeekSegue", "timeOffSegue", "myAvailabilitySegue", "staffSegue", "promoSegue", "activateAccountSegue", "addWeekSegue"]

        performSegueWithIdentifier(segues[indexPath.row], sender: self)
    }

}

模态视图控制器:

Alamofire.request(.POST, url, parameters: params, encoding: ParameterEncoding.URL)
    .validate()
    .responseJSON { (request, _, result) in
        switch result {
        case .Success(let data):
            json = JSON(data)
            print(json)
            print("request successful")

            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.dismissViewControllerAnimated(true, completion: nil)
            })
        case .Failure(_, let error):
            print("request failed")
            print(error)
    }
}

我已尝试打开和关闭所有 "Extend Edges" 设置,并且尝试覆盖顶部栏和底部栏的 "Inferred"。我在所有视图控制器上将演示文稿设置为 "Current Context"。

非常感谢任何建议,因为我运行没有尝试的机会。

我能找到的唯一可行的解​​决方案是删除所有模态转场。我将它们全部切换到 "show" segues,从那以后就没有问题了。一定是因为我没有全屏显示模态视图。我仍然在底部有标签栏。当从模态视图转换回调用者时,标签栏经常会出现颜色闪烁,然后有时标签栏会回来,有时会被背景覆盖。

如果我没猜错你的问题: 当我第一次开始摆弄标签栏控制器时,我遇到了同样的问题!我发现,如果您从视图控制器模态返回,则必须一直返回到选项卡栏控制器。 dismissViewController 对我来说效果更好。

我遇到了同样的问题,我修复了在 segue 的演示类型上选择 "Over Current Context"。见图: