dans iOS 5 Il fonctionne correctement:
PinRequiredViewController *pinView = [[PinRequiredViewController alloc]initWithNibName:@"PinRequiredView" bundle:nil]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:pinView]; // show the navigation controller modally navController.modalPresentationStyle = UIModalPresentationFormSheet; navController.modalInPopover = NO; navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentViewController:navController animated:YES completion:nil]; navController.view.superview.frame = CGRectMake(0, 0, 250, 250); navController.view.superview.center = self.view.window.center;
7 Réponses :
Le problème est que vous pouvez définir le cadre du superview sur ce que vous voulez, mais l'origine ne sera pas modifiée. C'est la raison pour laquelle il ne reste pas centré. P>
On dirait que Apple limitait ceci exprès sur iOS6 P>
I think it'll work if you remove the UIModalTransitionStyleFlipHorizontal
transition style and use one of the other transition styles instead.
semble être un bug avec uimodaltransitionstylefliphorizontal code>. p>
Merci aux hommes! C'est un bug car j'ai utilisé un autre uimodaltransitionstyle code> et exécuté est ok! :)
Utilisez l'achèvement: dans votre présenceViewController: Ceci fonctionnera avec uimodaltransitionstylefliphorizontal code>. P> p>.
C'est une étape dans la bonne direction, mais l'animation modale est la taille incorrecte jusqu'à la fin de l'animation. Le résultat final est jarring.
Sur iOS6 The NavCon.View.Superview.bounds = CGRRCTMAKE (0, 0, KPOPUPUWIDTH, KPOPUPUNTHEIGHTHEIGHT) APRÈS PRESENTVIEWCONTROLLATEUR: Animation: Achèvement: Utilisé pour travailler, mais pas sur iOS7 (bêta 5). La vue est redimensionnée, mais pas centrée ... sur les travaux d'achèvement, mais une animation moche comme l'enfer!
Faites-le simplement dans la vue ViewDidAppear au lieu de ViewDidLoad. Et vous êtes trié! P>
Dans ma compréhension avec
J'ai réussi avec les éléments suivants:
aboutViewController.modalPresentationStyle = UIModalPresentationFormSheet; aboutViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; CGRect aboutSheetFrame = aboutViewController.view.frame; [self presentViewController:aboutViewController animated:YES completion:^{ aboutViewController.view.superview.bounds = aboutSheetFrame; }]; aboutViewController.view.superview.bounds = aboutSheetFrame;
pour iOS 7 Essayez ceci:
[self.navigationController presentViewController:navigationController animated:YES completion:^{ [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ //Make the modal bigger than normal navigationController.view.superview.bounds = CGRectMake(0, 0, 700, 650); } completion:^(BOOL finished) { }]; }];
J'ai le même problème et je ne peux pas le résoudre. Utilisé pour fonctionner bien avant iOS 6.
@ Javi_576 Quel est exactement le problème ici? Des questions qui disent que "ne fonctionnent pas" ne sont pas une description détaillée de la question. Dites-vous que cela ne présente pas du tout?
Non, la vue est centrée sur iOS5 avec ce code, mais non dans iOS6.