我的项目中有UI View Table
和Simple View
控制器。它们通过导航控制器相互连接。在UI View Table
的顶部,有一个按钮"Add“调用Simple View
的segue。后者具有必须由用户填充的文本字段。当用户点击“后退”按钮时,他/她必须看到新添加的单元格的“更新”UI表视图。
为了在这些视图之间传递数据,我使用了单例类(从我的角度来看,这完全符合MVC模式)。该对象具有NSMutableArray
属性,当用户完成在Simple View
控制器上键入at文本字段时更新该属性。
但是,当我第一次启动应用程序时,按application按钮,在text字段输入文本并回击--即UI表不更新。
但是,当我再次重复相同的步骤时,两个(相同的)单元格将被添加到UI表视图中。
您能否提示我如何解决这个问题,即当用户按下后退按钮时,只向UI表视图添加一个单元格?
发布于 2014-02-19 18:19:42
这是因为-(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];
}
发布于 2014-02-19 17:52:57
您必须在tableview视图控制器的UITableView方法中重新加载viewWillAppear:animated
数据源:
- (void)viewDidLoad
{
[super viewDidLoad];
_info=[GeoChatInformationAboutTheSelectedPlace returnInstance];
//[self.tableView reloadData];
}
-(void)viewWillAppear:(BOOL)animated {
[self.tableView reloadData];
}
ps:您的github项目中缺少car1.jpeg和car2.jpeg
https://stackoverflow.com/questions/21888149
复制相似问题