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 に答える