2014-12-01 5 views
9

Ich habe die folgende (vereinfachte) Hierarchie: UINavigationController -> UIViewController -> UITableViewController. Ich möchte die Navigationsleiste ausblenden, wenn ich in meiner Tabellenansicht mit hidesBarsOnSwipe blättern. Was jetzt passiert, ist, dass die Navigationsleiste ausgeblendet wird, wenn ich nach unten scrolle, aber sie wird nicht wieder erscheinen, wenn ich nach oben scrolle. So sieht mein Code aus:hidesBarsOnSwipe für childView

// Create a navigation controller and set as root view controller 
// Enable hidesBarsOnSwipe 
UINavigationController *navigationC = [UINavigationController new]; 
self.window.rootViewController = navigationC; 
navigationC.hidesBarsOnSwipe = YES; 

// Create a view controller to act as parent for the table view 
UIViewController *parentVC = [UIViewController new]; 
[navigationC pushViewController:parentVC animated:NO]; 

// Create the table view controller 
UITableViewController *tableVC = [UITableViewController new]; 
tableVC.tableView.dataSource = self; 

// Add the table view as a subview to the parent view controller 
[parentVC addChildViewController:tableVC]; 
[parentVC.view addSubview:tableVC.tableView]; 
[tableVC didMoveToParentViewController:parentVC]; 
+0

haben Sie eine Lösung dafür bekommen? –

+0

Interesse zu wissen, ob dies auch gelöst wurde. –

Antwort

0

Dies sollte funktionieren.

Fügen Sie zuerst UIScrollViewDelegate in Ihrer.h oder .m Datei hinzu.

Fügen Sie dann die folgenden Delegate-Methoden hinzu.

#pragma mark - UIScrollViewDelegate Methods 

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{ 
    self.lastContentOffsetY = scrollView.contentOffset.y; 
} 

- (void) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView 
{ 
    bool shouldHide = (scrollView.contentOffset.y > self.lastOffsetY); 
    [[self navigationController] setNavigationBarHidden:shouldHide animated:YES]; 

} 
Verwandte Themen