-1
-(void)Complete{
    CM(@"complete");
    [BNUtilitiesQuick UtilitiesQuick].startForm=0;
    [self.view removeFromSuperview]; //This remove superView and the new view will be listNewController

    [self setSearchLocationWhenChangeSearchBar];
    if([self.searchListTemp isEqualToString:[cachedProperties singleton].searchList] && [self.searchLocationTemp isEqualToString:[cachedProperties singleton].searchLocation]){
        CLog(@"Don't do anything");
    }
    else{
        ...
//Blablabla
        //[Timer searchCriteriaChanged];
    }
[[BNUtilitiesQuick ListController] viewWillAppear:true];//It's not called if I don't do this

}

我的一部分觉得应该自动调用它。不知何故,当它没有被调用时,我一定做错了什么。

显然我也不希望事情被调用两次。

所以我最终明确地打电话给他们。怎么感觉都不对。我错了吗?

4

2 回答 2

0

如果你想在你的视图消失之前发生一些动作,你可以在viewWillDisappear方法中编写你的代码。此方法通知视图控制器其视图即将从视图层次结构中删除。

- (void)viewWillDisappear:(BOOL)animated{}
于 2012-06-25T08:41:51.757 回答
0

viewWillAppear在 中声明UIViewController.h,每次视图即将出现时都会自动调用它。在某些时候你必须在你的实现中使用 super 。这可能是它没有自动调用的原因,因为你BNUtilitiesQuick不是一个类UIViewController

于 2012-06-25T08:52:36.287 回答