2009-10-26 7 views
5

Die New York Times iPhone-Anwendung verfügt über eine Registerkartenleiste mit fünf Registerkartenleistenelementen. Wenn Sie die Registerkarte Letzter auswählen, zeigt die App den Titel und die Zusammenfassung/Zusammenfassung in einer UITableView an. Wenn Sie eine einzelne Story zum Lesen auswählen, wird die Tab-Leiste ausgeblendet und durch eine Kopf- und Fußzeile ersetzt, die je nach Status der App angezeigt bzw. ausgeblendet wird. Wie "versteckt" die App die Tab-Leiste?"Ausblenden" der Registerkartenleiste beim Drücken einer Ansicht

Danke!

Antwort

6

Der View-Controller, der auf den Stack der Navigationssteuereinheit geschoben wird, hat seinen Parameter hidesBottomBarWhenPushed auf yes gesetzt. Der Code würde in der Tabellenansicht -didSelectRowAtIndexPath in etwa so aussehen.

NSDictionary *newsItem = [newsItems objectAtIndex:[indexPath row]]; 
NewsDetailViewController *controller = [[NewsDetailViewController alloc] init]; 
[controller setHidesBottomBarWhenPushed:YES]; 
[controller setNewsItem:newsItem]; 
[[self navigationController] pushViewController:controller animated:YES]; 
[controller release], controller = nil; 

Werfen Sie einen Blick auf die documentation for hidesBottomBarWhenPushed.

p.s. Sie erhalten wahrscheinlich mehr Sichtbarkeit in dieser Frage, wenn Sie das Tag "iphone" hinzufügen.

+0

Dies sollte als richtige Antwort markiert werden. Danke trotzdem Matt :) – Ahmed

2

Ich habe eine Ansicht, die optional (abhängig von einem anderen Zustand) die Navigation Controller Toolbar anzeigen kann. Dies ist die Lösung, die ich & zeigen ausgeblendet habe die Symbolleiste (mit Animation), wenn die Ansicht erscheint & verschwindet über die Navigation. Es klingt nach dem, wonach du vielleicht suchst.

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    // Show the nav controller toolbar if needed 
    if (someBool) 
     [self.navigationController setToolbarHidden:NO animated:animated]; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    // Hide the nav controller toolbar (if visible) 
    [self.navigationController setToolbarHidden:YES animated:animated]; 
} 
10

Implementieren Sie dieses Codeelement in der Klasse, in der Sie die Tableiste ausblenden möchten.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
    // Custom initialization 
} 
self.hidesBottomBarWhenPushed = YES; 
return self; 
} 

Alles Gute.

Verwandte Themen