自定义大小UIModalPresentationFormSheet在键盘显示时返回默认大小

时间:2017-10-17 19:53:12

标签: ios objective-c swift uikit

我正在显示一个自定义大小的模式UIModalPresentationFormSheet,如下所示:

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

我希望这个视图控制器具有我在viewWillAppear中设置的自定义大小(它是一个混合的Objc-Swift项目):

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

这个问题是视图控制器有一个UITextField,当选择它(和键盘显示)时,模态调整大小为默认的表单大小。有关如何在键盘显示时保持视图控制器自定义大小的任何建议吗?

1 个答案:

答案 0 :(得分:0)

想出来。

我能够在呈现视图控制器之前设置navController.preferredContentSize而不是在viewWillAppear中修改框架来解决问题。