Well, I finally got everything to work, so I decided to post an answer for everyone.
Basically I set the standard navigation bar, and then on scrollViewDidScrollI get the scroll offset and change the frame based on this. It seems to work fine, see below my scrollViewDidScroll method.
- (void)scrollViewDidScroll:(UIScrollView *)sender {
UINavigationBar *navbar = self.navigationController.navigationBar;
UIView *tableView = self.view;
CGRect navBarFrame = self.navigationController.navigationBar.frame;
CGRect tableFrame = self.view.frame;
navBarFrame.origin.y = MIN(0, (sender.contentOffset.y * -1)) +20;
navbar.frame = navBarFrame;
tableFrame.origin.y = MIN(0,MAX(-44,(sender.contentOffset.y * -1)));
tableView.frame = tableFrame;
}
TableView 44px , , . viewWillAppear .