2011-09-01 76 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:添加到另一個視圖時調用。

相關問題