2010-09-07 7 views
5

Ich präsentiere einen Modal View Controller, der ein Tab-Bar-Controller mit einem Navigations-Controller darin ist.Unterschiedlicher Übergang auf presentModalViewController: animiert:

Das Problem ist meine erste Ansicht hat einen schwarzen Hintergrund und ich möchte die neue Ansicht einen weißen Hintergrund haben.

Das bedeutet, ich muss entweder den Modal View Controller mit einem transparenten Hintergrund haben (bis er die "Slide Up" Animation abgeschlossen hat, wenn er den weißen Hintergrund zeigt) ODER ich muss den Hintergrund des Navigationscontrollers als weiß einstellen mach es undurchsichtig.

Dies führt dazu, dass ich einen zusätzlichen weißen Streifen über der Navigationsleiste habe (wo der Netzwerkstatus/Batteriestatus/Zeitleiste angezeigt wird). Ich kann das nicht loswerden. :(

Also, wenn ich in die Ansicht drehen könnte, oder es verblasst in, oder von rechts schieben oder links oder etwas, das asthetically viel besser wäre.

Gibt es eine Möglichkeit, dies zu tun? oder werde ich muss nur gesetzt „animiert:“ NO

Dank

Antwort

10

ich verstand nicht, was Ihre Notlage mit den verschiedenen Farbhintergründen ist über Opaque Hintergründe auf Ihre Ansichten, vor allem diejenigen, animieren, machen die?. app run schneller.Nun über Übergänge, bevor Sie presentModalViewController aufrufen, fügen Sie eine der folgenden Zeilen ein:

Jeder der oben genannten Punkte ändert den Übergangsstil (obwohl PartialCurl dazu führt, dass ein weißes Bit der letzten Ansicht immer noch in der oberen Ecke vorhanden ist; es scheint nicht dokumentiert zu sein, obwohl es von der Google Maps App verwendet wird). Möglicherweise müssen Sie mit dem spielen, auf den der modalTransitionStyle eingestellt ist.

Das Einschieben von links oder rechts ist Teil des Navigation Controllers. Das Ändern von Hintergründen ist wahrscheinlich nicht das, was Sie wollen, wenn Sie mit dem Navigationscontroller arbeiten. .

auch, dass zusätzliche Streifen über der Modellansicht, egal zeigen wird, in welcher Art und Weise Sie über Es ist ärgerlich, aber es kann über kommen wie folgt:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    navigationController.view.frame = CGRectMake(0, 0, 320, 460); //<--This line 
} 
+0

Im Grunde wollte ich nicht um einen transparenten Hintergrund zu haben - aber der weiße Hintergrund zeigt den lästigen weißen Streifen an der Spitze. Das letzte Stück Ihrer Antwort ist das, wonach ich gesucht habe. Vielen Dank :) –

Verwandte Themen