使用UI表格视图,iOS 7

问题描述:

我在我的项目中有UI View TableSimple View控制器。他们通过导航控制器相互连接。在UI View Table的顶部,有一个按钮“添加新位置”,它将调用segue到Simple View。后者具有必须由用户填写的文本字段。当用户点击“返回”按钮时,他/她必须用新添加的单元看到“更新的”UI表格视图。使用UI表格视图,iOS 7

为了在这些视图之间传递数据,我使用了singleton类(从我的角度来看,它非常适合MVC范例)。该对象具有NSMutableArray作为在用户在Simple View控制器上的文本字段完成键入时更新的属性。

但是,当我第一次启动应用程序时,请按添加新位置按钮,在文本字段处输入文本并返回 - 没有任何反应,即UI表不更新。

但是,当我再次重复相同的步骤时,两个(相同)单元格被添加到UI表视图中。

请问我可以如何解决这个问题,即当用户按下后退按钮时,只添加一个单元格到UI表格视图?

这是因为 - (IBAction)textFieldReturn:(id)发件人被触发两次。您必须将方法添加到viewWillDisappear中的数据:(BOOL)动画,并检查空值:

-(IBAction)textFieldReturn:(id)sender{ 

} 

-(void)viewWillDisappear:(BOOL)animated { 

    if ([_textSearch.text length] == 0) return; 

    NSLog(@"%@", _textSearch.text); 
    _info.isEdited=YES; 
    _info=[GeoChatInformationAboutTheSelectedPlace returnInstance]; 
    [_info.arrayOfTheNamesOfTheLocations addObject:_textSearch.text]; 
    [_info.imagesOfTheSavedLocations addObject:@"car1.jpeg"]; 
    [_info.arrayOfTheNumberOfUpdatesOfTheSavedLocations addObject:@"1"]; 
    [_info.arrayOfTheOnLineUsersAtTheSavedLocations addObject:@"56"]; 
    [_info.arrayOfThePostsAssociatedWithTheSelectedLocation addObject:@3]; 
} 

您对重载的UITableView数据源在你的tableview视图控制器viewWillAppear:animated方法:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    _info=[GeoChatInformationAboutTheSelectedPlace returnInstance]; 
    //[self.tableView reloadData]; 
} 

-(void)viewWillAppear:(BOOL)animated { 

    [self.tableView reloadData]; 
} 

PS:car1.jpeg和car2.jpeg缺少在github上的项目

+0

谢谢您的建议。我按照你的建议做了,但现在,当我第二次点击“添加新位置”时,先前输入的文本再次作为新单元格添加。 –

+1

这是因为 - (IBAction)textFieldReturn:(id)发送者被触发两次。 (BOOL)动画,并检查空值: - (void)viewWillDisappear:(BOOL)animated {if _textSearch.text length == 0)return; NSLog(@“%@”,_textSearch.text); ecc ecc – matsoftware

+0

非常感谢!它帮助了我。你能否在你的问题答案中插入你的评论?我想接受你的建议作为我的问题的正确解决方案。 –