私のプロジェクトには、いくつかの場所に既存のコードがあり、現在のビューの上にモーダル ビューのサイズを変更して中央に配置するために使用navigationController.view.superview.frame
さnavigationController.view.superview.center
れます。確かにボイラープレートとして使用できますが、正直なところ、navigationController.view.superview
実際に何を指しているのかわかりません. に特有UINavigationControllers
ですか?任意のアイデア/コメントをいただければ幸いです。
[編集] コードは次のとおりです。
UIStoryboard *sb = self.storyboard;
MyViewController *vc = (MyViewController *)[sb instantiateViewControllerWithIdentifier:@"MyLoginViewController"];
vc.delegate= self;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
[self.navigationController presentModalViewController:navController animated:YES];
navController.view.superview.frame = CGRectMake(
navController.view.superview.frame.origin.x,
navController.view.superview.frame.origin.y,
400.0f,
400.0f
);
navController.view.superview.center = self.view.center;
新しいモーダル ビューにナビゲーション コントローラーを使用しない場合、「スーパービュー」を使用する必要はありません。すなわち、
UIStoryboard *sb = self.storyboard;
MyViewController *vc = (MyViewController *)[sb instantiateViewControllerWithIdentifier:@"MyLoginViewController"];
vc.delegate= self;
[self.navigationController presentModalViewController:vc animated:YES];
vc.view.frame = CGRectMake(
vc.view.frame.origin.x,
vc.view.frame.origin.y,
400.0f,
400.0f
);
vc.view.center = self.view.center;
ただし、バックグラウンドで現在の VC を表示することはできません...