Ich habe eine UINavigationController
mit 3 ViewControllern. Wir wissen, dass die drei viewControllers eine gemeinsame navigationBar teilen. Wenn ich die navigationBar
völlig transparent einstellen möchte. Ich kann den Code in viewWillAppear
setzen:Show transparent UINavigationbar wird schwarze Leiste sehen, wenn der ViewController wischen
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[UIImage new]];
[self.navigationBar setBarTintColor:[UIColor clearColor]];
self.navigationBar.translucent = YES;
und legen Sie es in viewWillDisappear
zurück:
[self setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self setShadowImage:nil];
[self setBarTintColor:THEME_COLOR];
self.translucent = NO;
ich die UINavigationBar
durchscheinend nur in viewControllerB setzen wollen, so habe ich den Code in viewControllerB. Wenn ich jedoch popToViewController B, kann ich einen schwarzen Balken in der oberen rechten Ecke des Bildschirms sehen. Da wird die viewWillAppear
aufgerufen. Es scheint, dass es in meinem Fall nicht gelöst werden kann.
komme ich mit einigen Methoden aus:
- verwenden unterschiedliche
UINavigationBar
. - verwenden Sie verschiedene
UINavigationController
. AberUINavigationController
kann nicht eine neueUINavigationController
- Custom
UIView
wieUINavigationBar
schieben.
ich oben methos denken ist komplizierter.
Irgendwelche Ideen Dank!
Setzen Sie Ihren Code von 'ViewControllerB' und' ViewControllerC' –
Ich verstehe nicht, was Sie meinen, "Da die' viewWillAppear' aufgerufen wird. Es scheint, kann in meinem Fall nicht gelöst werden. "? Kannst du das anders ausdrücken? Und können Sie ein Bild des schwarzen Balkens oben rechts auf dem Bildschirm hinzufügen? Es ist seltsam, dass Sie die Leiste nicht über den gesamten oberen Bildschirmrand sehen. – Palpatim