Tab bar disappears when returning from modal view controller
<p>I have a strange problem that I have not been able to resolve. I have a relatively large app with segues to modal view controllers from both UIViewControllers and UITableViewControllers. The UIViewControllers seem to work fine, however, I have an inconsistent problem with the table view controllers. The tab bar is displayed when I segue to the modal controller, and it displays correctly in the model view. However, when I dismiss the modal controller, there is a 50/50 chance that the tab bar on the table view controller will be  gone. The background view extends right to the bottom of the screen. The tab bar is translucent, so I want the background to extend behind it, but I have no idea why in some instances (with same controllers and same situation) work correctly and some don't. I haven't been able to find any pattern.</p>

<p>Before segue to modal:
<a href="https://i.stack.imgur.com/fAuyK.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fAuyK.png" alt="enter image description here"></a></p>

<p>Upon return from modal:
<a href="https://i.stack.imgur.com/IbSDp.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/IbSDp.png" alt="enter image description here"></a></p>

<p>Initial tableview controller:</p>

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

}
</code></pre>

<p>Modal view controller:</p>

<pre><code>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(), { () -&gt; Void in
                self.dismissViewControllerAnimated(true, completion: nil)
            })
        case .Failure(_, let error):
            print("request failed")
            print(error)
    }
}
</code></pre>

<p>I've tried all the "Extend Edges" settings both on and off, and I've tried overriding the "Inferred" for both top bar and bottom bar. I have presentation set to "Current Context" on all view controllers.</p>

<p>Any suggestions greatly appreciated, as I am running out of things to try.</p>