2009-10-26 14 views
5

Aplikacja New York Times na iPhone'a ma pasek kart z pięcioma elementami paska na karty. Po wybraniu karty Ostatnie aplikacja wyświetla tytuł i streszczenie/podsumowanie w widoku UITableView. Po wybraniu pojedynczej historii do przeczytania pasek kart zniknie i zostanie zastąpiony nagłówkiem i stopką, która pojawia się/znika w zależności od stanu aplikacji. W jaki sposób aplikacja "ukrywa" pasek kart?"Ukryj" pasek kart podczas przesuwania widoku

Dzięki!

Odpowiedz

6

Kontroler widoku, który jest pchany na stos kontrolera nawigacyjnego, ma ustawiony parametr hidesBottomBarWhenPushed na yes. Kod wyglądałby tak w widoku tabeli -didSelectRowAtIndexPath.

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; 

Spójrz na documentation for hidesBottomBarWhenPushed.

p.s. Prawdopodobnie uzyskasz lepszy dostęp do tego pytania, jeśli dodasz do niego tag "iphone".

+0

To powinno być oznaczone jako poprawna odpowiedź. Dzięki Matt i tak :) – Ahmed

2

Mam widok, który musi opcjonalnie (w zależności od innego stanu) pokazać pasek narzędzi kontrolera nawigacji. To jest rozwiązanie, które pokazałem & ukryć pasek narzędzi (z animacją), gdy pojawi się widok & znika za pośrednictwem nawigacji. Wygląda na to, że możesz być po.

- (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

Zaimplementuj ten fragment kodu w klasie, w którym chcesz ukryć pasek kart.

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

Wszystkiego najlepszego.