私はしばらくの間、これについて壁に頭をぶつけてきました。Master-Detail SplitViewController をプレゼンテーション フレームワークとして使用する iPad アプリがあります。アプリが最初にロードされたときにログイン ダイアログを表示し、カスタム サイズにする必要があります。メイン ストーリーボードに UIViewController シーンを作成し、DetailController が最初に読み込まれるときに VC を読み込みます。
私が抱えている問題は、VC のサイズを完全に制御できないことです。ポートレートモードで表示するために、フォームシートとして定義しました。プレゼンテーションを FormSheet に設定しました。いくつかの異なる方法でサイズを明示的に設定しようとしましたが、まったく機能しません。
基本的な問題は、これらすべてが原因で、VCが常にフルスクリーンで縦向きに表示されることです。また、横向きに回転すると、縦向きモードのままで、左右に隙間が残り、ビューの上下が切り取られます。
これは信じられないほど苛立たしく、ここからどこへ行くべきか本当にわかりません. 興味深いのは、アプリが完全にロードされた後、タップを使用してまったく同じ種類の VC を表示することです。以下をセットアップとして使用すると、美しく表示されます。
MyViewController *itemDetails;
itemDetails = [Globals.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
itemDetails.itemImage.image = imageView.image;
itemDetails.jewelryObject = jewelryObject;
itemDetails.delegate = self;
itemDetails.modalPresentationStyle = UIModalPresentationPageSheet;
itemDetails.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:itemDetails];
itemDetails.navigationItem.title = jewelryObject.itemDescription;
[navigationController setModalPresentationStyle:UIModalPresentationFormSheet];
[self presentViewController:navigationController animated:YES completion:nil];
navigationController.view.superview.autoresizingMask =
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleBottomMargin;
navigationController.view.superview.frame = CGRectMake(
itemDetails.view.superview.frame.origin.x,
itemDetails.view.superview.frame.origin.y,
540.0f,
450.0f
);
navigationController.view.superview.center = self.view.center;
self.itemDetails = itemDetails;
言葉に出来ないほどの悔しさです。私は iOS 向けのプログラミングが大好きですが、時折、世捨て人になりたいと思う瞬間があります。「あっ!」という人がいたら 彼らが私に投げかけることができる洞察、私は本当に感謝しています.