无论如何谁应该调用viewWillAppear?

时间:2012-06-25 08:30:25

标签: objective-c xcode4.3

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

}

部分我认为应该自动调用它。不知怎的,当它没有被调用时,我一定做错了。

显然我不希望事情被召唤两次。

所以我最后明确地打电话给他们。不知怎的,这感觉不对。我错了吗?

2 个答案:

答案 0 :(得分:0)

如果您希望在视图消失之前执行某些操作,则可以使用viewWillDisappear方法编写代码。此方法通知视图控制器其视图即将从视图层次结构中删除。

- (void)viewWillDisappear:(BOOL)animated{}

答案 1 :(得分:0)

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