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

时间:2016-03-10 19:48:21

标签: ios swift uitableview uitabbar

我有一个奇怪的问题,我无法解决。我有一个相对较大的应用程序,带有来自UIViewControllers和UITableViewControllers的模态视图控制器的segues。 UIViewControllers似乎工作正常,但是,我与表视图控制器有一个不一致的问题。当我转到模态控制器时显示标签栏,它在模型视图中正确显示。但是,当我关闭模态控制器时,表视图控制器上的标签栏将有50/50的可能性消失。背景视图一直延伸到屏幕底部。标签栏是半透明的,所以我希望背景延伸到它后面,但我不知道为什么在某些情况下(具有相同的控制器和相同的情况)工作正常而有些不合适。我还没有找到任何模式。

在segue到modal之前: enter image description here

从模态返回时: enter image description here

初始tableview控制器:

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)
    }
}

我已经尝试了所有"延伸边缘"打开和关闭设置,我已经尝试重写" Inferred"顶杆和底杆。我的演讲设置为" Current Context"在所有视图控制器上。

任何建议都非常感谢,因为我已经没事了。

3 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,我修复了选择" Over Current Context"关于segue的表现形式。见图:

Attribute inspector

答案 1 :(得分:2)

我能找到的唯一解决办法是删除所有模态段。我将它们全部切换到“显示”segues并且从那时起就没有问题。必须与我没有全屏显示模态视图这一事实有关。我的底部仍然有标签栏。当从模态视图转换回调用者时,标签栏上常常会出现一些颜色,然后有时候标签栏会回来,有时它会被背景覆盖。

答案 2 :(得分:0)

如果我的问题是对的: 当我第一次开始使用标签栏控制器时,我遇到了同样的问题!我发现,如果你从一个视图控制器模态回来,你必须一直回到标签栏控制器。 dismissViewController对我来说效果更好。