CularBytes
CularBytes

Reputation: 10321

Table view top space to navigation bar increased after pressing back

When I click one of the cells in the table view, it opens a new view with the following code:

   let fullResView : FullResponseViewController = self.storyboard?.instantiateViewControllerWithIdentifier("FullResponseView") as! FullResponseViewController
   fullResView.receivedPost = post
   self.navigationController?.pushViewController(fullResView, animated: false)

When I press back, it increases the distance between the table view and the Top Layout Guide. Representation:

table view navigation controller error.

Hierarchy:

constraints for the table view are:

I've tried the following:

set this in viewWillAppear:

self.responsesTableView.contentOffset =  CGPointMake(0, 0)
self.automaticallyAdjustsScrollViewInsets = false

This did work when I pressed back, then switch to another view in the tab bar, and then switch back again. Without contentOffset it will stay like this forever.

Upvotes: 4

Views: 3430

Answers (2)

Mike Gledhill
Mike Gledhill

Reputation: 29191

I'm not sure if this is related to your particular issue, but it's worth checking whether your UITableView is the first control on your screen:

Why is there extra padding at the top of my UITableView

Even in the latest version of Xcode, this is a bug. But it's easy enough to fix, if you know how to get around it.

enter image description here

Upvotes: 0

Nitin Gohel
Nitin Gohel

Reputation: 49730

As i seen the OP images that seems like Navigation translucent property Issue. Because after push a viewcontroller there is same 44px white space. so it means if your Navigation translucent property is true then your UITableview start from 0th Y position. And if your Navigation translucent property is false then UITableview start from 44px Y position.

So i guess in between push and back some where UINavigation's translucent become a true and false. make following one line add in your appdelegate class in DidFinish method:

UINavigationBar.appearance().translucent = false

This is appearance of UINavigationBar for make this false globley in your project. Hope that will be fix your issue.

Upvotes: 12

Related Questions