2011-09-01 63 views
1

我的应用程序是基于我的应用程序在一个视图中的视图我写视图将出现,但此方法不会调用。我的代码是- (void)viewWillAppear:(BOOL)动画不叫

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

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

对不起,我忘了告诉你,这种方法第一次调用,但是当我从这个视图删除子视图viewWillAppear没有调用。请建议我如何解决这个问题。

+0

尝试看看这本http://stackoverflow.com/questions/131062/iphone-viewwillappear-not-firing –

回答

0

你好我在这里做了,而不是

[self.view addSubview:viewcontroller.view]; 

我用这个:

[self presentModalViewController:viewcontroller animated:YES]; 

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

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

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

+0

谢谢,但我的问题是解决不了viewWillAppear中的方法不调用。 – Vijay

+0

试试这个http://stackoverflow.com/questions/131062/iphone-viewwillappear-not-firing – PJR

0

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

0

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

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

didMoveToSuperview将在您的视图上使用addSubview:添加到另一个视图时调用。

相关问题