10

アプリ上にカスタマイズされたアラートパネルを表示したいのですが、以前のUIViewControllerをバックグラウンドで表示しています。これをモーダルビューコントローラーとして表示したいと思っていました。以前のUIViewControllerが黒くなり、消えることなくこれを行うにはどうすればよいですか?

4

4 に答える 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 に答える