2012-08-08 42 views
0

在我的視圖控制器之一,我已經叫通過在許多地方運行的方法不解,但不是在viewDidAppear

-(void)calculateUpdatedTotal{ // do things here } 

的方法每當用戶離開文本字段,其中有很多,我運行更新和聲明如下所示:

[self calculateUpdatedTotal]; 

它工作的很好,除了下面所述。

我需要在控制器視圖出現時更新計算,所以在我的viewDidAppear方法中,我包含了調用該方法的語句。 viewDidAppear按預期運行,但[self calculateUpdatedTotal];沒有做任何事情。沒有錯誤,也沒有警告。我已經使用了幾個NSLog語句來縮小它的範圍,並且一切正常,只是它沒有運行。它可能與viewDidAppear有關嗎?值得讚賞的是,如何追蹤和解決問題的任何想法。

+0

在運行時,從'viewDidAppear'調用時不會輸入'calculateUpdatedTotal'? – 2012-08-08 19:31:35

+0

viewWillAppear可能是一個更好的選擇,因爲這只是在視圖出現之前調用 – CSmith 2012-08-08 19:36:52

+0

Dan的問題的答案是肯定的。我將把它移到viewWillAppear並查看它是否被調用。謝謝。 – K17 2012-08-08 19:59:40

回答

0

我假設你沒有在viewWillLoad中調用或者查看WillUnload來驗證那些被調用的例程。假設這段代碼位於一個帶有筆尖和視圖的UIViewController子類中,唯一可能的解釋是您鍵入了方法名稱並且沒有使用命令競爭或複製粘貼。這是驗證你有:

- (void)viewWillAppear:(BOOL)animated; 
- (void)viewDidAppear:(BOOL)animated; 

我從來沒有聽說過這些沒有被系統調用的情況。但是,如果拼錯了名字,你永遠不會知道,因爲它不是一個迫使你提供這種方法的協議。

相關問題