2014-09-01 52 views
0

我有一個視圖控制器UITableView和每個表視圖單元格有一個UILabel。無論何時編輯標籤,我都會調用我的NSFileManager控制器中的一種方法,用於編輯與文本標籤關聯的文件的名稱。如果我點擊一個文本標籤,但從來沒有編輯名稱和點擊返回,文件管理器控制器將返回一個錯誤和一個UIAlertView說「文件名已存在」將顯示在我的視圖控制器 - 這很好。然而,如果我點擊一個標籤開始編輯,但點擊另一個按鈕到另一個視圖控制器,應用程序將繼續到選定的視圖控制器,警報視圖將顯示,然後應用程序將崩潰,一旦我點擊「確定」警報視圖中的按鈕。任何想法如何解決這個問題?UITextLabel編輯導致錯誤

我實現了endEditing方法,當我點擊一個非繼續按鈕時可以解決問題。

-(IBAction) tapRecord:(id)sender 
{ 
    [self.audioPlayer stopAudio]; 
    [self.view endEditing:YES]; 
    [self.navigationController popToRootViewControllerAnimated:YES]; 
} 

我得到的錯誤是「線程1:EXC_BAD_ACCESS」。我相信它是我對UIAlertView的行爲導致了問題。我怎樣才能讓UIAlertView在繼續之前出現?

回答

0

您沒有爲您的UIAlertView發佈任何代碼,但是我假設您將警報的delegate設置爲您正在繼續瀏覽的視圖控制器。如果您顯示即將解除分配的視圖控制器的警報,然後單擊警報上的按鈕,它將嘗試在delegate視圖控制器中調用警報的delegate方法。

如果這是你做了什麼,你可以通過以下兩種方式之一來解決它:

  1. 設置警報的delegatenil所以它不會嘗試調用任何方法,當按鈕被竊聽
  2. 顯示未被取消分配的視圖控制器的警報
+0

你說得對。警報視圖委託被設置爲self。將其設置爲無效完美。謝謝! – Brosef 2014-09-01 23:53:34

+0

沒問題!很高興你解決了。 – rebello95 2014-09-01 23:55:49