iPhone-udvikling: Skjul UITabBar
En af de mest bruge navigationselementer på iPhonen er tabbaren eller UITabBar som den også hedder. Forleden dag havde jeg brug for at fjerne tabbaren, når man trykkede på en bestemt knap i et view. Det burde være nemt nok, og længe troede jeg at jeg skulle have fat i hidesBottomBarWhenPushed, som skjuler tabbaren, når et nyt view pushes. Det virkede også fint nok, bare ikke til det formål jeg skulle bruger det til. Til sidst fandt jeg dog en løsning:
UIView *newView = [self.tabBarController.view.subviews objectAtIndex:0];
UIView *tabBar = [self.tabBarController.view.subviews objectAtIndex:1];
newView.frame = CGRectMake(0, 0, 320, 480 );
tabBar.hidden = TRUE;
Det man gør er først at resize sit view, så det fylder hele skærmen (ellers kom der et hvidt hul, der hvor tabbaren har været) og dernæst skjule tabbaren.
Når man skal vise tabbaren igen, gør man det lige modsat, dvs. sætter tabBar.hidden til FALSE og resizer sit view til 320 gange 431, så det passer over tabbaren.
Jeg havde brug for at fjerne tabbaren, for at sikre mig, at man ikke kunne navigere væk fra viewet under bestemte forhold. En anden ting man kan bruge det til er, hvis man vil fjerne tabbaren i landsskabsmode, hvor den ellers tager meget plads op.
Af hensyn til engelsktalende personer, er her et resume på engelsk:
The code above shows how to hide the tabbar (UITabBar) in an iPhone app.
Nu får vi bedre mobildækning
Fart hen over skrivebordet
Nu åbner Sonosguide.dk
Populær iPhone-app har kopieret alle dine kontakter.
Se Paul McCartney-koncert direkte med Apple TV
Apple leder efter udviklere til iPad 3-event
iPad 3-event i starten af marts?
Fotos af bagsiden til iPad 3 tyder på større batteri
Indviklet fodring af festlige pingviner
iPads på menuen
Tips: Flere muligheder for at ændre størrelsen på et vindue
FBI frigiver baggrundstjek på Steve Jobs fra 1991
Lion-gendannelse flere Mac’s
Apple snart klar med ny effektiv Macroscalar-processorteknologi?
Nye pegeikoner kan være hint om Mac’s med Retinaskærm
Rygterne om Apple fjernsyn tager til
Genius-funktion er kommet til Apple TV
Munster: Apple er i dialog med producenter af TV-komponenter
Spar 300 kroner på en Apple TV i Fona
Drudoo
Har aldrig rigtig tænkt over at man kunne det
men det er nok ret nyttigt at kunne skjule sin tabbar
tak for tippet, og godt med lidt mere iphone udvikling
15. januar 2010 @ 22:08
Drudoo
Btw ville det være muligt at få en tab i menubaren (på siden) som hedder iPhone-udvikling? det er ikke alle artiklerne som har tagget iphone-udvikling, så det er lidt svært at finde dem alle
15. januar 2010 @ 23:01
Martin
Jeg kigger på det.
15. januar 2010 @ 23:45
John
Når nu I kan udvikler iPhone programmer, var det så ikke en ide at optimere jeres hjemmeside lidt?
F.eks. Har jeg set et eksempel på en hjemmeside der kunne fjerne tabbaren i bunden af Safari. (Jeg synes at den ìg tabbaren optager alt for megen plads)
16. januar 2010 @ 11:28
Claus Bruun
@John: Har du et link til den pågældende webside?
16. januar 2010 @ 13:15
Martin
@John
Hvad er det der skal optimeres ved hjemmesiden? Det er svært rigtigt at gøre noget ved tingene, når du bare kommer med et halv surt opstød, og ikke fortæller hvad det er du er utilfreds med. Og hvad har det i øvrigt med iPhone-udvkling at gøre?
Man kan ikke bare fjerne tabbaren i Safari. Det er noget Apple styrer. Man kan dog lave noget der hedder web apps, hvor tabbaren og adresselinien er fjernet, men det har ikke så meget med iPhoneguides hjemmeside at gøre.
16. januar 2010 @ 16:16