0

我試圖更新一些我的看法,當他們出現,所以我很自然地發現自己使用viewDidAppear:和viewWillAppear中:方法。不過,我已經經歷了兩個問題,使用這些方法:不規則行爲使用viewDidAppear和viewDidLoad中方法

  1. 當我僅實現的方法之一,是我期待做的更改是沒有完全出現,所以爲了讓一切工作,我實現兩種方法都有相同的代碼。
  2. 即使執行具有相同代碼這兩種方法後,有更新視圖的內容時是0.5到1秒的延遲。

這是我爲我定製的表視圖控制器代碼:

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    [self.tableView reloadData]; 
} 

-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    [self.tableView reloadData]; 
} 

出於某種原因,我必須調用reloadData方法兩次完全更新我的表視圖。

這裏是我的我的自定義代碼所做的普通視圖控制器:

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    navItem.title = @"Name1"; 
    nameLabel.text = @"Name1"; 
    nameField.hidden = YES; 
} 

-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    navItem.title = @"Name1"; 
    nameLabel.text = @"Name1"; 
    nameField.hidden = YES; 
} 

謝謝!

+0

你需要使用只有一個方法,令人奇怪的是,如果你使用的是一個那麼它不爲你工作,是它永遠爲你一個問題? – rishi 2012-04-24 11:59:54

+0

這是我第一次使用這些方法,所以我猜這對我來說總是一個問題。 – bnasty 2012-04-24 12:05:33

+0

只嘗試再次使用viewWillAppear並放置一個斷點,然後檢查控制是否存在或不存在? – rishi 2012-04-24 12:06:50

回答

1

您應該只使用viewWillAppear方法。

相關問題