我的观点在iPhone上并不令人耳目一新

时间:2011-08-07 19:20:42

标签: objective-c xcode

我可以选择在我的应用中停用广告。启用该选项后,广告就会消失。现在,当您离开包含广告的网页并返回广告时,广告确实会消失。但对于一个页面,我的MainMenuViewController,由于某种原因该页面不刷新和广告保留。对于它的其他页面,当广告在那里,当我离开该页面并返回时,广告本身会刷新并显示新广告,但对于主菜单,它始终是相同的广告,因此它不会令人耳目一新。我在所有视图控制器中都有相同的代码,所以我不确定为什么这个代码会造成麻烦。以下是MainMenuViewController中的重要方法:

- (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;
    }

1 个答案:

答案 0 :(得分:0)

如果它只发生在该特定视图上,可能是因为它被保存在内存中并且在您返回时不会被重绘。这很常见,如果您使用导航控制器来管理堆栈中的视图控制器(例如,根视图控制器总是在堆栈中,并且往往会留在内存中,直到需要该内存为止)。

为什么不强制使用setNeedsDisplay重绘视图控制器的视图?