Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 弹出视图控制器时,广告应位于的ADBannerNavigation空白区域_Iphone_Objective C_Xcode4_Iad_Banner Ads - Fatal编程技术网

Iphone 弹出视图控制器时,广告应位于的ADBannerNavigation空白区域

Iphone 弹出视图控制器时,广告应位于的ADBannerNavigation空白区域,iphone,objective-c,xcode4,iad,banner-ads,Iphone,Objective C,Xcode4,Iad,Banner Ads,我下载并查看了AdBannerAvigation 在内部,我将RootViewController更改为子类TextViewController,以利用iAd横幅的大小调整。我也想在RootView上显示广告 现在是RootViewController.h: #import <UIKit/UIKit.h> #import "TextViewController.h" @interface RootViewController : TextViewController @end

我下载并查看了AdBannerAvigation

在内部,我将RootViewController更改为子类TextViewController,以利用iAd横幅的大小调整。我也想在RootView上显示广告

现在是RootViewController.h:

#import <UIKit/UIKit.h>
#import "TextViewController.h"

@interface RootViewController : TextViewController

@end
其他一切都一样。当我编译并运行时,RootView中没有显示广告,当我点击TextView时,广告突然出现

当我单击返回时,RootView中现在有空白

为什么??
如何删除空白?

在删除ADBannerView时发现错误

iAd套件告诉我们:

注意:如果您的应用程序有多个选项卡或视图显示iAd横幅,请确保在每个视图中共享一个ADBannerView实例。然后,在用户导航到新视图之前,将共享实例的委托属性设置为nil,将其从旧视图层次结构中删除,然后将同一实例添加到打开的视图,并将其委托设置为相应的视图控制器。AdBannerNavigation样本显示了这种技术

因此,在我的iADBannerView.m中,我有:

- (void)viewWillDisappear:(BOOL)animated{
  [self removeADBannerFromView];
  [super viewWillDisappear:animated];
}

- (void)removeADBannerFromView{
  NSLog(@"ad removed from view");
  ADBannerView *adBanner = SharedAdBannerView;
  adBanner.delegate = nil;
  [adBanner removeFromSuperview];
 }

- (void)dealloc{
    // we are being called here when we navigate away from this view controller,
// so go ahead and reset our AdBannerView for the next time
//


ADBannerView *adBanner = SharedAdBannerView;
adBanner.delegate = nil;
[adBanner removeFromSuperview];

[contentView release]; contentView = nil;

    [super dealloc];
 }
通过设置断点,我看到通过退出视图,ViewWillEnglish在view1上被调用,ViewWillEnglish在view0上出现,然后在view1上解除锁定

问题是view1已经从视图中删除了ADBannerView,因此[adBanner removeFromSuperView]正在从view0中删除广告

通过从dealloc方法中删除有问题的代码来解决此问题