3

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

-(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];

}
4

3 回答 3

1

@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 的超级视图上调用它。

于 2012-04-22T12:45:24.260 回答
0

我认为这不是正确的视图层次结构。如果您的构建目标是 iOS 5.0+,我认为您应该考虑使用[viewController1 addChildViewController:viewController2]

于 2012-04-22T04:57:51.940 回答
0

可以试试这个:

-(void)fullScreenAdViewControllerDidDismissAd(MobclixFullScreenAdViewController*)fullScreenAdViewController
{
    NSLog(@"Dismissed");
    [fullScreenAdViewController.view removeFromSuperview];
}
于 2012-04-22T07:01:59.007 回答