1

我想在每次显示 a 时显示整页图像广告UIViewController。我想我必须在viewDidAppearor中调用该方法ViewWillAppear,但它们被调用一次。

- (void) viewDidAppear:(BOOL)animated{
    [self showAds];
}

- (void) showAds{
    //Do Something
}

每次显示 uiviewcontroller 时我应该怎么做才能调用方法(即使它已经创建)?

4

3 回答 3

4

ViewWillAppear每次UIViewController显示 a 时都会调用,但在应用返回前台时不会调用。

于 2013-03-28T04:04:19.457 回答
3

您可以通过以下代码使用通知来实现您的目标,这种情况特别是当您的应用程序处于后台并且用户按下 HOME 按钮以激活它时。

仅当您的应用程序在 viewDidLoad 中进入 Forground 时注册通知。

[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(handleEnteredBackground)
                                             name: UIApplicationDidBecomeActiveNotification
                                           object: nil];

编写应用程序进入Forground时调用的方法

-(void)handleEnteredBackground
{
    NSLog(@"%s",__FUNCTION__);
    // Your stuff here
}

不要忘记在 viewDidUnload 方法中删除观察者

[[NSNotificationCenter defaultCenter] removeObserver:self];

每次您的应用程序进入Forground 时发布新通知

- (void)applicationWillEnterForeground:(UIApplication *)application
{

    [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidBecomeActiveNotification object:nil];
}
于 2013-03-28T04:37:35.327 回答
1

每次都应该调用 ViewWillAppear。采用:

- (void) viewWillAppear:(BOOL)animated{
    [self showAds];
}
于 2013-03-28T03:46:25.110 回答