1

iOS 8 でのシートからのビュー コントローラーの表示に関連する質問が 1 つだけあります。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 に答える