每次显示UIViewController时调用方法

时间:2013-03-28 03:40:29

标签: ios objective-c uiview uiviewcontroller

我想在每次显示UIViewController时显示整页图片广告。 我想我必须在viewDidAppearViewWillAppear内调用该方法,但它们被调用一次。

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

- (void) showAds{
    //Do Something
}

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

仅在viewDidLoad中的应用程序enterForground时注册Notifcation。

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

编写一个方法来在应用程序enterForground

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

不要忘记在viewDidUnload方法中删除Observer

[[NSNotificationCenter defaultCenter] removeObserver:self];

每次应用程序enterForground

时发布新通知
- (void)applicationWillEnterForeground:(UIApplication *)application
{

    [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidBecomeActiveNotification object:nil];
}

答案 2 :(得分:1)

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

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