2014-09-01 160 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