2011-08-07 9 views
0

私のアプリで広告を無効にするオプションがあります。このオプションを有効にすると、広告は表示されなくなります。さて、実際には、広告を表示して戻ってくるページを残すと、広告は消えてしまいます。しかし、あるページ(私のMainMenuViewController)では何らかの理由でページが更新されず、広告が残っています。それ以外のページでは、広告が表示されているときと、そのページを離れて戻ったときに、広告自体が更新されて新しい広告が表示されますが、メインメニューでは常に同じ広告なので、 。私はすべてのビューコントローラで同じコードを持っているので、なぜこのコードが問題を引き起こしているのか分かりません。ここでMainMenuViewControllerで重要なメソッドです:私のビューはiPhoneでリフレッシュされていません

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    appDelegate = (TestAppDelegate*)[[UIApplication sharedApplication] delegate]; 
    if(appDelegate.isPremium==NO) { 
     self.adView = [[[MobclixAdViewiPhone_320x50 alloc] initWithFrame:CGRectMake(0.0f, 430.0f, 320.0f, 50.0f)] autorelease]; 
     [self.view addSubview:self.adView]; 
    } 
} 
-(void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [self.adView resumeAdAutoRefresh]; 
} 

-(void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    [self.adView pauseAdAutoRefresh]; 
} 

-(void) viewWillAppear:(BOOL)animated { 

    [super viewWillAppear:animated]; 
} 


- (void)viewDidUnload { 
    [super viewDidUnload]; 
    [self.adView cancelAd]; 
    self.adView.delegate = nil; 
    self.adView = nil; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (void)dealloc { 
     [super dealloc]; 
     [self.adView cancelAd]; 
     self.adView.delegate = nil; 
     self.adView = nil; 
    } 

答えて

0

それだけでそのメモリに保持し、あなたがそれに戻ったときに再描画されていないされているそのためか、その特定のビューで発生した場合。これは、ナビゲーションコントローラーを使用してスタック内のView Controllerを管理している場合(特に、ルートビューコントローラーは常にスタック内にあり、そうでない場合はメモリが必要になるまでメモリ内に留まる傾向があります)によく使用されます。

なぜ表示コントローラのビューをsetNeedsDisplayで再描画するようにしないのですか?

関連する問題