In my app I have a UISearchBar under UINavigationBar so it is always visible to user. In that case I had to set contentInset with extr
UISearchBar
UINavigationBar
contentInset
Add in numberOfRowsInSection your code [self.tableView setContentInset:UIEdgeInsetsMake(108, 0, 0, 0)];. So you will set your contentInset always you reload data in your table
[self.tableView setContentInset:UIEdgeInsetsMake(108, 0, 0, 0)];