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.
Nordic Game Awards i Malmø
gTar: Digital guitar med indbygget iPhone
Forlængede frontpaneler til kommende iPod touch lækket
Apple tester iPhones med større skærmhøjde
Kinesisk taxi er det rene vanvid
Hjælp en stakkels fugl i dens flugt mod friheden i dette hæsblæsende spil
Spring ud i det mørke rum, men sørg for at lande det rigtige sted
Æd en masse insekter, men vogt dig for de farlige
Apple: Den nye iPad har skiftet navn
Giv dit musikbibliotek på iPaden et personligt præg
Ren science fiction: Styr Mac’en med håndbevægelser i luften
Foxconn opfører ny Apple-fabrik til 1,2 mia. kroner
Jailbreak til Apple TV version 5.0.1 klar
Apple-bestyrelsesmedlem: Apple rykker snart ind i folks dagligstuer
Mediedirektør: Apple TV gør intet for at hjælpe med at få internetmateriale på ens TV
Rygte: Apple vil købe TV-producenten Loewe
Bestyrelsesmedlem hos Foxconn: Vi gør os klar til produktion af Apple-fjernsyn
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