アプリ上にカスタマイズされたアラートパネルを表示したいのですが、以前のUIViewControllerをバックグラウンドで表示しています。これをモーダルビューコントローラーとして表示したいと思っていました。以前のUIViewControllerが黒くなり、消えることなくこれを行うにはどうすればよいですか?
質問する
6457 次
4 に答える
17
新しい VC をモーダル VC として表示する代わりに、子ビュー コントローラーとして追加する必要があります。
AlertPanelVC *alertVC = ...
[self addChildViewController: alertVC];
alertVC.view.frame = ...; //or something equivalent if you're using auto layout
[self.view addSubview: alertVC.view];
[alertVC didMoveToParentViewController: self];
閉じるには:
[alertVC willMoveToParentViewController:nil];
[alertVC.view removeFromSuperview];
[alertVC removeFromParentViewController];
于 2012-10-28T16:09:29.343 に答える
1
これが私が使用したものです:
MyCustomAlertViewController *myCustomAlertViewController = [[MyCustomAlertViewController alloc]initWithNibName:@"MyCustomAlertViewController" bundle:nil];
myCustomAlertViewController.delegate = self; //optional if you have delegate setup
[myCustomAlertViewController setModalPresentationStyle:UIModalPresentationPageSheet];
[myCustomAlertViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentViewController:myCustomAlertViewController animated:YES completion:^{
//do stuff after the view is displayed.
}];
myCustomAlertViewController.view.superview.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
myCustomAlertViewController.view.superview.frame = CGRectMake(calculatedCenterX, CalculatedCenterY, myCustomAlertViewControllerWidth, myCustomAlertViewControllerHeight);
//calculatedCenterX = (1024 - myCustomAlertViewControllerWidth) / 2; //for example
//calculatedCenterY = (768 - myCustomAlertViewControllerHeight) / 2;
于 2012-10-28T16:30:35.520 に答える
0
そのためのクールなぼかしコンポーネントがあります。もちろん、好みの問題です。:)
于 2012-10-28T16:58:39.723 に答える