- (void)viewWillAppear :( BOOL)动画未调用

时间:2011-09-01 10:28:26

标签: objective-c

我的应用程序是基于我的应用程序的视图在一个视图中我会写出视图,但此方法不会调用。我的代码是

-(void)viewWillAppear:(BOOL)animated
{
    NSLog(@"view will Appear");
    [tableView reloadData];
}

任何人都可以告诉为什么没有调用viewWillAppear方法。

抱歉,我忘了告诉你这个方法第一次调用,但是当我从这个视图中删除子视图时,未调用viewWillAppear。请建议我如何解决这个问题。

4 个答案:

答案 0 :(得分:2)

 -(void)viewWillAppear:(BOOL)animated  
{  
  [super viewWillAppear:animated];  
  NSLog(@"view will Appear");    
  [tableView reloadData];  
}

如果仍然没有调用那么尝试通过代码调用,例如[classobj viewWillAppear:NO];

答案 1 :(得分:0)

viewWillAppear和其他相关方法被调用到与mainWindow的rootViewController链接的viewcontroller。 因此,如果您使用的是基于视图的应用程序,则第一个视图控制器的viewWillAppear方法将正常工作,而其他视图控制器则不会。

答案 2 :(得分:0)

我认为您看到的问题是viewWillAppear:UIViewController上的方法,而不是UIView上的方法。在视图控制器上调用viewWillAppear:以指示控制器的视图将变为可见。

如果您已将上述代码添加到基于UIView的类中,则不会调用该代码。您需要将该代码移动到视图控制器 - 或者 - 您可以通过在基于UIView的类中实现didMoveToSuperview方法来实现您正在寻找的结果。

当您使用didMoveToSuperview将视图添加到其他视图时,系统会在您的视图中调用

addSubview:

答案 3 :(得分:0)

嗨我在这里做了

[self.view addSubview:viewcontroller.view];

我用过这个:

[self presentModalViewController:viewcontroller animated:YES];

现在写下这个方法我的问题就解决了。

-(void)viewWillAppear:(BOOL)animated
{
    NSLog(@"==========view will appear");
}