Iphone 弹出视图控制器时,广告应位于的ADBannerNavigation空白区域
我下载并查看了AdBannerAvigation 在内部,我将RootViewController更改为子类TextViewController,以利用iAd横幅的大小调整。我也想在RootView上显示广告 现在是RootViewController.h: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
#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方法中删除有问题的代码来解决此问题