作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 tableView
,我从中导航到一个“viewController”,即 PassengerInfoViewController
,我在其中有一个表单。我填写表单,制作一个 dictionary
并将其添加到 NSMutableArray
。
所以当我回到 tableView' 时,我想传递这个数组,然后用填充的数组重新加载
tableView。
所以这就是我正在做的:-
//navigate to the form
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
PassengerInfoViewController *pivc = [self.storyboard instantiateViewControllerWithIdentifier:@"PassengerInfoViewController"];
[self.navigationController pushViewController:pivc animated:YES];
}
//After filling up the form
-(void)goBackToPassengerDetails:(UIButton*)sender{
NSString *title = self.titleTextField.text;
NSString *fname = self.firstNameTextField.text;
NSString *lname =self.lastNameTextField.text;
NSString *ageStr = self.ageTextField.text;
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:title forKey:@"title"];
[dict setValue:fname forKey:@"firstName"];
[dict setValue:lname forKey:@"lastName"];
[dict setValue:ageStr forKey:@"age"];
Passenger *passengerObj = [Passenger sharedInstance]; //Singleton
[passengerObj.passengerDetailArray addObject:dict];
PassengerDetailsViewController *pdc = [self.storyboard instantiateViewControllerWithIdentifier:@"PassengerDetailsViewController"];
[pdc getPassengerinfo:passengerObj.passengerDetailArray];
[self.navigationController popViewControllerAnimated:YES];
导航回来后,我重新加载 TableView 。但是 celForRow
方法不会填充新值。
-(void)getPassengerinfo:(NSMutableArray*)arr{
passenger_infoArray =[[NSMutableArray alloc]init];
passenger_infoArray = arr;
NSLog(@"Passenger Info Array : %@", passenger_infoArray);//Shows array of dictionaries
[passengerInfoTableView reloadData];
}
我的 cellForRow
方法如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Not called when I am doing reload data
static NSString *CellIdentifier = @"Cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier ];
}
NSLog(@"Table view array : %@",passenger_infoArray);
if (passenger_infoArray.count>0) {
NSString *temp= [[passenger_infoArray objectAtIndex:indexPath.row]objectForKey:@"firstName"];
cell.textLabel.text = temp;
}else{
cell.textLabel.text = [NSString stringWithFormat:@"Passenger %ld", (long)indexPath.row+1];
cell.imageView.image = [UIImage imageNamed:@"user.png"];
}
return cell;
}
最佳答案
你可以使用
传递数据使用委托(delegate)是一种很好的做法,最后两个不是首选。
关于ios - 如何从 detailViewController 填充数组并返回到 iOS 中的 masterViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863740/
我是一名优秀的程序员,十分优秀!