2017-10-17 16 views
0

Je l'affichage d'un modal de taille personnalisée avec UIModalPresentationFormSheet comme ceci:Taille personnalisée UIModalPresentationFormSheet retourne à la taille par défaut lorsque le clavier affiche

UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"SearchViewController" bundle:nil]; 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
    navController.modalPresentationStyle = UIModalPresentationFormSheet; 

Je veux que ce contrôleur de vue d'avoir une taille personnalisée que je suis mise en viewWillAppear (c'est un projet objc-Swift mixte):

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationController?.view.superview?.bounds = CGRect(x: 0, y: 0, width: 540, height: 350) 
} 

Ce numéro est le contrôleur de vue a un UITextField que lorsqu'il est sélectionné (et le clavier montre) modale redimensionne à la taille de feuille de formulaire par défaut. Des suggestions sur la façon de garder le contrôleur de vue la taille personnalisée, même lorsque le clavier montre?

Répondre

0

Compris.

J'ai été en mesure de résoudre le problème en définissant navController.preferredContentSize avant de présenter le contrôleur de vue plutôt que de modifier le cadre à partir de viewWillAppear.