【问题标题】:iAd banner doesn't reappear after navigation controller pop导航控制器弹出后 iAd 横幅不再出现
【发布时间】:2014-06-06 15:45:38
【问题描述】:

我的 iAd 横幅视图出现问题。最初,当我的应用程序首次加载时,我有一个主菜单。我有一个 iAd 横幅位于视图的底部边缘,一旦我的视图出现,它就会以动画形式出现。当我按下按钮推送到导航控制器层次结构中的另一个视图控制器,然后按下返回以返回主菜单时,iAd 不会重新出现。只有在我完全重新启动应用程序时才会再次出现。

这是我的代码:

//MainMenu. h
@property (strong, nonatomic) IBOutlet ADBannerView *adView;
@property (nonatomic) BOOL bannerIsVisible;


 //MainMenu.m
-(void)viewWillAppear:(BOOL)animated
{
    bannerIsVisible = NO;

    adView.delegate = self;

   [self.navigationController setNavigationBarHidden: YES animated:YES];

}

#pragma Begin Ad View Methods
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if(bannerIsVisible == NO)
    {
        NSLog(@"Banner ad loaded");

        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];

        banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height);

        [UIView commitAnimations];

        bannerIsVisible = YES;
    }
}

-(void)viewWillDisappear:(BOOL)animated
{
    if(bannerIsVisible == YES)
    {
        [UIView beginAnimations:@"animateBannerOff" context:NULL];

        adView.frame = CGRectOffset(adView.frame, 0, adView.frame.size.height);

        [UIView commitAnimations];

        bannerIsVisible = NO;
    }
}

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    NSLog(@"Failed to load the ad in main menu: %@", [error localizedDescription]);
}

#pragma End Ad View Methods

我已经尝试删除偏移方法,然后将 adView.hidden = YES/NO 转为查看是否是动画问题,但结果是一样的。如果有人可以提供提示或帮助,将不胜感激。我也尝试将各自的代码放入其他方法中,例如 viewDidLoad 和 viewDidDisappear。

【问题讨论】:

  • 我遇到了同样的问题。如果您找到解决方案,请告诉我。

标签: ios iphone objective-c iad


【解决方案1】:

这是一个东西,

就在你的主视图上,添加一个 UIView 类型的视图,给它一个与你想要的添加大小有关的大小,

然后,不要在主视图中加载您的广告,而是在您专门为横幅添加的视图中加载它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多