1

我只有一个与在 iOS 8 中显示表单视图控制器相关的问题。在 iOS 7 中,我能够使用以下函数中的最后一行代码更改视图控制器的高度:

SendRemainingEvaluationsViewController *sendRemainingEvaluationViewController = [[[SendRemainingEvaluationsViewController alloc] initWithNibName:@"SendRemainingEvaluationsViewController" bundle:nil]autorelease];
    UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:sendRemainingEvaluationViewController] autorelease];
    navigationController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentViewController:navigationController animated:YES completion:nil];

    //To Change the default size of the viewController which is presented in UIModalPresentationFormSheet presentation style
    navigationController.view.superview.frame = CGRectMake(navigationController.view.superview.frame.origin.x, navigationController.view.superview.frame.origin.y, navigationController.view.superview.frame.size.width, 230);

但这不适用于 iOS 8,不知道为什么?有谁知道是什么问题?任何想法将不胜感激。

提前致谢。

4

1 回答 1

0

检查后,我可以找出问题所在。初始化视图导航控制器后,它的超级视图为 nil,您无法在呈现后立即访问它。作为一种解决方法,您可以在您尝试呈现的视图控制器的 viewwillAppear 中更改其超级视图的框架,如下所示:

- (void) viewWillAppear:(BOOL)animated
{
    self.parentViewController.view.superview.frame = CGRectMake(self.parentViewController.view.superview.frame.origin.x, self.parentViewController.view.superview.frame.origin.y, self.parentViewController.view.superview.frame.size.width, 230);
}

这应该有效。

于 2014-09-15T16:29:24.093 回答