Frage

ich, dass zeigt eine Unterklasse von TTMessageController haben ... aber es ist nicht animiert, obwohl es sein sollte. Der Code, der zeigt die modalen Ansicht sieht wie folgt aus (wo PostToWebMessageController die Unterklasse von TTMessageController ist:

if (self.toWebMsgController == nil) {
    self.toWebMsgController = [[PostToWebMessageController alloc] init];
}

UINavigationController *navController = [[UINavigationController alloc] init];
[navController pushViewController:self.toWebMsgController animated:NO];

[self presentModalViewController:navController animated:YES];

Was allerdings passiert, ist dies: Der Bildschirm wird schwarz ... die Tastatur blättert in den Blick nach oben ... und dann die TTMessageController Ansicht zeigt (nicht animiert). Wenn ich die Ansicht über eine Schaltfläche Abbrechen entlassen wird der Bildschirm schwarz und dann verschwindet einfach (keine Animation wieder).

Irgendwelche Ideen, warum dies geschieht? Ich habe dies mit einer Reihe von anderen TT * Controller und ich kann nicht mit zeigt modal ein animieren richtig machen.

Danke

UPDATE:

Dies ist in jedem UIViewController passiert, dass ich versuche, modal zu präsentieren. Bildschirm wird schwarz, Tastatur belebt nach oben und dann sehen angezeigt. Irgendwelche Ideen, warum dies passiert sein könnte ???

War es hilfreich?

Lösung

Ein Tag, um diese, um herauszufinden, ... hoffentlich jemand von meinen Schmerzen profitieren!

Hier ist, was passiert:

Der UIViewController Aufruf PresentModalViewController selbst in einem UIScrollView verschachtelt, die in EINEM ANDEREN UIViewController enthalten ist. Offenbar tut Kakao Touch nicht viel davon. Wie auch immer, zu korrigieren, das Problem habe ich die folgenden:

  1. In eine Eigenschaft vom Typ UIViewController zum UIViewController, die einen modalen View-Controller präsentieren (z.B. @property (nonatomic, retain) UIViewController *owningController;)

  2. Set dass property = auf den obersten UIViewController (derjenige, der die UIScrollView enthält in diesem Fall)

  3. In den UIViewController, dass zeigt die modale Ansicht ... ändern Sie diese

[ self PresentModalViewController: Controller animiert: YES];

auf diese ...

[owningController presentModalViewController:controller animated:YES];

Andere Tipps

Ich bin nicht sicher, warum Sie einen UINavigationController verwenden. Wenn es da würden Sie Ihren toWebMsgController Controller wie eine Navigationsleiste haben, wenn es Belastungen in der modalen Ansicht, versuchen Sie die folgenden Änderungen an Ihrem Code:

if (self.toWebMsgController == nil) {
    self.toWebMsgController = [[PostToWebMessageController alloc] init];
}

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:toWebMsgController];

//[navController pushViewController:self.toWebMsgController animated:NO];

[self presentModalViewController:navController animated:YES];

Wenn Sie nicht über eine Navigationsleiste in Ihrer modalen Ansicht benötigen, werden Sie wahrscheinlich nicht brauchen einen UINavigationController überhaupt.

Ich hatte dasselbe Problem.

Überprüfen Sie, ob Sie Root-Controller (wenn Sie vorhanden Controller darüber) für presentationStyle nicht auf UIModalPresentationCurrentContext gesetzt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top