我们可以提供像UIAlertController这样的半透明ViewController吗?

时间:2017-06-11 07:17:06

标签: ios objective-c iphone uiviewcontroller

我想封装一个半透明的ViewController,就像名为CQAlertController的UIAlertController一样。在我写过的CQAlertController的viewDidLoad方法中:

self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3];

但是当我在rootViewController中使用现有的CQAlertController时:

CQAlertController *alertController = [CQAlertController alertControllerWithTitle:@"title" message:@"detail" preferredStyle:CQAlertControllerStyleActionSheet];
[self presentViewController:alertController animated:YES completion:nil];

它没有呈现半透明的ViewController,而是一个全黑的ViewController。

有没有办法提出半透明的ViewController?

注意:

  1. 方法- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated已弃用,因此我根本不想使用此方法。

  2. 我想要的目标是使用方法presentViewController:animated:直接呈现半透明的ViewController ,就像现在的UIAlertController一样。

  3. 我应该为CQAlertController做什么?

1 个答案:

答案 0 :(得分:0)

试试这个:

CQAlertController *alertController = [CQAlertController alertControllerWithTitle:@"title" message:@"detail" preferredStyle:CQAlertControllerStyleActionSheet];

alertController.modalPresentationStyle = UIModalPresentationOverCurrentContext;

[self presentViewController:alertController animated:YES completion:nil];

希望它有所帮助。