添加UIView作为app主窗口的子视图

时间:2015-08-18 19:55:24

标签: ios objective-c

我想在其他视图的顶部显示UIView,无论当前显示什么视图。所以我在自定义类中创建了以下与任何视图无关的方法:

v0.12.7

调用方法时不显示视图。但是,如果我旋转设备会显示,因此屏幕方向会改变。我想我应该以某种方式重新加载视图,但此时此刻我被卡住了。你能帮我吗?

2 个答案:

答案 0 :(得分:2)

谢谢你,dtrotzjr,好问题。问题是该方法是从后台线程调用的。这是解决方案:

dispatch_async(dispatch_get_main_queue(), ^{
        AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
        UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(100,100, 100, 100)];
        [redView setBackgroundColor:[UIColor redColor]];
        [[appDelegate window] addSubview:redView];
    });

很抱歉打扰。

答案 1 :(得分:0)

您可以创建一个AlertViewController并在任何视图控制器上显示它,您甚至可以使此AlertViewController透明。

self.parentVC = someVC;/*this should be the VC over which you want to present the alert VC */
self.modalPresentationStyle = UIModalPresentationCustom;
[self setTransitioningDelegate:someDelegate];
dispatch_async(dispatch_get_main_queue(), ^{
    [self.parentVC presentViewController:self
                                animated:YES
                              completion:^{
                              }];
});