iphone - 从 UIWindow 中删除 UIView

标签 iphone objective-c ios uikit

我有一个 UIViewController,它的 View 被添加到我的 UIWindow 中。但是,如果我删除 View ,我将无法点击它所在位置下方的任何内容。我的代码如下:

-(void)createFullAd{
    UIViewController *viewController = [UIViewController new];
    self.fullAd = [MobclixFullScreenAdViewController new];
    self.fullAd.delegate = self;
    [self.fullAd requestAndDisplayAdFromViewController:viewController];
    viewController.view.tag = 999999;
    [[[[UIApplication sharedApplication] delegate]window] addSubview:viewController.view];
}

- (void)fullScreenAdViewControllerDidDismissAd:(MobclixFullScreenAdViewController*)fullScreenAdViewController{
    NSLog(@"Dismissed");
    [[[[[UIApplication sharedApplication] delegate] window] viewWithTag:999999]removeFromSuperview];

}

最佳答案

@dasblinkenlight 给了我这个想法,如果他回帖我会把答案奖励给他。

这很乱,但这是唯一有效的方法:

-(void)displayAd {
    self.fullAd = [MobclixFullScreenAdViewController new];
    self.fullAd.delegate = self;
    self.adController = [UIViewController new];
    [self.fullAd requestAndDisplayAdFromViewController:self.adController];
    [[[[UIApplication sharedApplication] delegate]window] addSubview:self.adController.view];
}
- (void)fullScreenAdViewControllerDidDismissAd:(MobclixFullScreenAdViewController*)fullScreenAdViewController{
    [fullScreenAdViewController.view removeFromSuperview];
    [[[[UIApplication sharedApplication] delegate]window] setNeedsLayout];
    self.adController = nil;

}

setNeedsLayout 是关键,但我在窗口而不是 adController 的 super View 上调用它。

关于iphone - 从 UIWindow 中删除 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10264851/

相关文章:

iPhone页面 curl 效果

ios - 按字母顺序对 UITableView 内容(地址簿)进行排序

ios - 一个协议(protocol),被多个类使用

Objective-C:调配方法调用的方法应该调用原始实现

ios - 共享扩展 UI 加载时间过长

iphone - 如何将范围列表映射到单个值?

iphone - 现有圆上的曲线文本

ios - 调试版本和发布版本中 BOOL 变量的不同值

ios - 在单元格中的单击按钮上添加新的单元格行

ios - 从 Foursquare URL 加载图像到 UIImageView