Ich versuche, das Fenster rootViewController mit Animation zu ersetzen und es funktioniert nur teilweise.Replace window.rootViewController mit Animation funktioniert teilweise
ich ein UINavigationController programmatisch -
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"InboxStoryboard" bundle:nil];
UIViewController *innerViewController = [storyBoard instantiateViewControllerWithIdentifier:@"centerView"];
UINavigationController *centerView = [[UINavigationController alloc] initWithRootViewController:innerViewController];
Danach das Fenster Root-View-Controller in einem Animationsblock gewickelt I ersetzen -
[UIView transitionWithView:self.viewController.view.window
duration:0.5
options: UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.viewController.view.window.rootViewController = centerView;
}
completion:nil];
Was passiert, ist, dass die Animation passieren, aber der Controller, dass ich erstellen ist nur teilweise sichtbar, werfen Sie einen Blick auf das folgende Bild -
So wie Sie während der Rotation sehen können, wird die Ansicht nur teilweise gerendert.
Wer ist schon einmal auf diese Art von Verhalten gestoßen?
ein Fehler? Löschen Sie die App im Simulator und führen Sie sie erneut aus. – MasterRazer
Was ist Selbst in dem Code, den Sie gepostet haben? Es ist nicht klar, in welcher Klasse Sie diesen Code ausführen. – rdelmar
self ist ein NSObject, das ein anderer UIViewController hat. Der Fluss ist - Instanziieren Sie mein Objekt in einigen anderen UIViewController, verwenden Sie das Objekt, um den Stammansicht-Controller durch einen anderen zu ersetzen. AFAIK das ist ziemlich Standard-Flow, immer noch keine Ahnung, warum es teilweise gerendert wird. Auch wenn ich keine Animation verwende und nur die Grundansicht ersetze, funktioniert es. –