2017-10-17 4 views
0

zeigt Ich bin eine benutzerdefinierte Größe modal mit UIModalPresentationFormSheet wie so dargestellt:Benutzerdefinierte Größe UIModalPresentationFormSheet gibt Größe auf dem Standard wenn Tastatur

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

Ich mag diesen View-Controller eine eigene Größe haben, die ich in der Einstellung viewWillAppear (es ist ein gemischtes ObjC-Swift-Projekt):

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

Dieses Problem ist die view-Controller eine UITextField haben, dass, wenn sie ausgewählt (und die Tastatur zeigt) die modale die Blattgröße Standardformular paßt die Größe. Haben Sie Vorschläge, wie Sie den View-Controller auch dann auf der benutzerdefinierten Größe halten können, wenn die Tastatur angezeigt wird?

Antwort

0

Ich habe es herausgefunden.

Ich konnte das Problem beheben, indem ich navController.preferredContentSize vor dem Darstellen des View-Controllers festlegen, anstatt den Frame in viewWillAppear zu ändern.

Verwandte Themen