0

我的目标是在另一个 uiviewcontroller 之上呈现一个透明的 uiviewcontroller ,以便背景成为 viewcontroller..

I'm NOT using storyboard.

现在我只是添加了 UIViews 而不是 UIViewcontrollers 并且一切正常,问题是我觉得一个管理所有视图的视图控制器(可能很容易在单独的视图控制器中)认为是不好的做法 - 它只是不觉得正确的。

我正在考虑创建一个viewcontroller inside of my base viewcontroller然后只是

[self addSubview:otherVC.view] 

所以我得到的将是一个视图控制器,它具有一个视图控制器作为属性并将其视图呈现为子视图。

这是否被认为是一种不好的做法?

我应该怎么办?

不工作(适用于 ipad)

 self.view.backgroundColor = [UIColor clearColor];
    self.modalPresentationStyle = UIModalPresentationCurrentContext;  
    [self presentModalViewController:modalVC animated:YES];

tnx。

4

1 回答 1

2

当我需要制作透明视图控制器时,我制作了这样的方法:

- (UIImage *)screenshot:(CGRect)cropRect {
    UIGraphicsBeginImageContext(cropRect.size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(ctx, -cropRect.origin.x, -cropRect.origin.y - [[UIApplication sharedApplication] statusBarFrame].size.height);
    [self.view.window.layer renderInContext:ctx];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

然后我将它传递给透明视图控制器并使其成为背景视图

UIImage *bgImage = [self screenshot:self.view.window.frame];
transparentViewController.view.backgroundColor = [UIColor colorWithPatternImage:bgImage];

类似的东西。我可以为此目的使用另一个视图,它不一定是 self.view

于 2013-07-09T09:59:33.907 回答