没有故事板uiviewcontroller透明于其他uiviewcontroller

时间:2013-07-09 09:43:37

标签: iphone ios objective-c cocoa-touch uiviewcontroller

我的目标是在另一个uiviewcontroller之上呈现一个透明的uiviewcontroller ,这样后台将成为一个viewcontroller ..

I'm NOT using storyboard.

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

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

[self addSubview:otherVC.view] 

所以我得到的是一个视图控制器,它将viewcontroller作为属性并将其视图显示为子视图。

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

我该怎么办?

不工作(适用于ipad)

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

TNX。

1 个答案:

答案 0 :(得分: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