Du bist nicht angemeldet.

1

Freitag, 30. Juli 2010, 04:27

tabBar verstecken

Guten Abend/ Guten Morgen,

Ich bin grad iwie zu doof ne tabBar zu verstecken.

"self.tabBarController.tabBar.hidden = YES;" lässt zwar die tabBar scheinbar verschwinden, jedoch ist dann an dessen Stelle einfach ein weißes Rechteck.

Die tabBar hat als ViewController eine Subklasse von UITabBarViewController.
Bei den ViewControllern, deren Views durch die versteckte tabBar mehr Platz erhalten sollen, kann ich zwar "self.view.bounds" und "self.view.frame" verändern. Dies bringt jedoch auch keinen Unterschied.

Wer weiß wie's geht?

2

Freitag, 30. Juli 2010, 07:10

Du solltest mal versuchen, die Größe des Views des TabBarControllers zu ändern. Die Views der enthaltenen ViewController sollten natürlich die Autoresizing-Mask entsprechend gesetzt haben.
"Die Komplikation hatte eine Komplikation."

3

Freitag, 30. Juli 2010, 14:45

HIlft alles nichts. Ich habe übrigens auch eine Navigation Bar, wenn ich dessen "hidden" property auf YES setze, funktioniert alles wie es soll. Die Navigation Bar verschwindet und der Subview wird autoresized.

Bisher versucht (testweise in meiner UITabBarController Subklasse) :

- (void)viewDidLoad {
NSLog(@"Autoresizes Subviews: %d", self.view.autoresizesSubviews);
self.tabBar.hidden = YES;
self.view.frame = CGRectMake(0, 0, 320, 480);
self.view.bounds = CGRectMake(0, 0, 320, 480);
[self.tabBar removeFromSuperview];
self.tabBar.frame = CGRectMake(0, 0, 0, 0);
self.tabBar.bounds = CGRectMake(0, 0, 0, 0);
}

Die App startet und unten ist ein weißer Rand, eben genau an der Stelle, wo sonst die Tab Bar ist.
NSLog() gibt übrigens eine 1 raus (autoresizing der Subviews sollte damit aktiviert sein).

4

Freitag, 30. Juli 2010, 15:16

Ich habe aber von der autoresizingMask geschrieben. Die muss bei den Subviews richtig gesetzt sein. Das Verändern der Property frame und Setzen der Property hidden sollte ausreichen. Einem TabBarController seine TabBar wegzunehmen halte ich für gewagt.
"Die Komplikation hatte eine Komplikation."

5

Freitag, 30. Juli 2010, 15:45

Gut, im tabBarController alles gelöscht und Folgendes in dessen subViewController eingetragen:

Quellcode

1
2
3
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight;
self.tabBarController.tabBar.hidden = YES;
self.view.frame = CGRectMake(0, 0, 320, 460);

Und es erscheint immernoch der weiße Balken^^

6

Freitag, 30. Juli 2010, 15:54

Welcher View muss die flexible Höhe haben?
"Die Komplikation hatte eine Komplikation."

7

Freitag, 30. Juli 2010, 19:47

Ist das jetzt eine Fangfrage?

Falls nein:
Die App hat eine Tab Bar und eine Navigation Bar (welche ein Subview des Tab Bar Views ist).
Die Navigatoin Bar hat als root View Controller nun eine UITableViewController Subklasse. Von dieser MyTableViewController Klasse aus möchte ich die Tab Bar verstecken.
Irgendwo ist da der Wurm drin. Sehr detailliert habe ich mich zugegebenermaßen allerdings noch nicht mit der View Schicht beschäftigt.

Zitat

Einem TabBarController seine TabBar wegzunehmen halte ich für gewagt.

Das habe ich ja nur gemacht, um einfach mal jede Möglichkeit auszuprobieren. Habe mittlerweile sehr viele Try and Errors hinter mir, als Ergebnis bislang leider nur Errors^^.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DrUeSBe« (31. Juli 2010, 01:50)


8

Samstag, 31. Juli 2010, 13:30

Ist das jetzt eine Fangfrage?

Nein, wenn ich Dir Fangfragen stellte, würde ich Dich ja in die falsche Richtung locken wollen. Ich will aber das Gegenteil.
Mit den zusätzlichen Informationen Deines letzten Beitrags, kann ich aber meine Frage konkretisieren: Welcher View muss eine flexible Höhe haben, der des TabBarViewControllers oder der des MyTableViewControllers?

Das habe ich ja nur gemacht, um einfach mal jede Möglichkeit auszuprobieren. Habe mittlerweile sehr viele Try and Errors hinter mir, als Ergebnis bislang leider nur Errors.

Durch die richtigen Fragen lässt sich der Try-And-Error-Aufwand erheblich reduzieren.
"Die Komplikation hatte eine Komplikation."

10

Dienstag, 3. August 2010, 01:27

Danke. Der Code aus deinem Link konnte mir weiterhelfen.

Es ist find ich trotzdem irgenwie komisch, dass es nicht über tabBar.hidden möglich ist, die Tab Bar vernünftig zu verstecken, selbst wenn man gerade ein frisches Tab Bar Template vor sich hat.
Da muss Apple noch ein bisschen an Cocoa touch arbeiten...

11

Dienstag, 3. August 2010, 07:27

Da muss Apple noch ein bisschen an Cocoa touch arbeiten...

...oder Du an Deinem App-Design ;)
"Die Komplikation hatte eine Komplikation."

Ähnliche Themen