我有一个奇怪的问题,我无法解决。我有一个相对较大的应用程序,带有来自UIViewControllers和UITableViewControllers的模态视图控制器的segues。 UIViewControllers似乎工作正常,但是,我与表视图控制器有一个不一致的问题。当我转到模态控制器时显示标签栏,它在模型视图中正确显示。但是,当我关闭模态控制器时,表视图控制器上的标签栏将有50/50的可能性消失。背景视图一直延伸到屏幕底部。标签栏是半透明的,所以我希望背景延伸到它后面,但我不知道为什么在某些情况下(具有相同的控制器和相同的情况)工作正常而有些不合适。我还没有找到任何模式。
初始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"在所有视图控制器上。
任何建议都非常感谢,因为我已经没事了。
答案 0 :(得分:7)
答案 1 :(得分:2)
我能找到的唯一解决办法是删除所有模态段。我将它们全部切换到“显示”segues并且从那时起就没有问题。必须与我没有全屏显示模态视图这一事实有关。我的底部仍然有标签栏。当从模态视图转换回调用者时,标签栏上常常会出现一些颜色,然后有时候标签栏会回来,有时它会被背景覆盖。
答案 2 :(得分:0)
如果我的问题是对的: 当我第一次开始使用标签栏控制器时,我遇到了同样的问题!我发现,如果你从一个视图控制器模态回来,你必须一直回到标签栏控制器。 dismissViewController对我来说效果更好。