【发布时间】:2013-09-28 20:28:14
【问题描述】:
我正在创建一个新应用程序,并且在应用程序中我想要两个表格视图。一个用于显示列表,另一个用于显示用户从列表中选择的内容。 到目前为止,我已经创建了包含项目的数组,并且我已经让视图在彼此之间传递。 我似乎无法在另一个 tableview 中显示所选项目。
这是来自列表表视图的一些代码(数据在推送“完成”时传递)。 viewC 是另一个视图的实例,用于访问它。
-(IBAction)dismissValgScene {
for (int i = 0; i < ValgteMedierarray.count; i++) {
NSLog(@"%@", [ValgteMedierarray objectAtIndex:i]);
}
viewC.TilvalgteMedierArray = [NSMutableArray arrayWithArray:ValgteMedierarray];
NSLog(@"1: antal i tilvalgteArray = %lu", (unsigned long)viewC.TilvalgteMedierArray.count);
[viewC.tableView reloadData];
NSLog(@"2: antal i tilvalgteArray = %lu", (unsigned long)viewC.TilvalgteMedierArray.count);
[self dismissViewControllerAnimated:YES completion:nil];
}
这是完成按钮的方法,它将所选项目添加到另一个视图中的数组中。 (也就是viewC.TilvalgteMedierArray)
这是另一个视图中的一些代码,应该显示所选项目
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [TilvalgteMedierArray count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
// Configure the cell...
cell.textLabel.text = [TilvalgteMedierArray objectAtIndex:indexPath.row];
return cell;
}
希望你们能提供帮助,如果你对我的编码有任何不理解的地方,请让我详细说明 :)
(如果这已在其他地方得到回答,我表示歉意,但我一直在寻找几个小时没有找到解决方案)。
编辑:
感谢所有试图帮助我的人。 :)
我现在找到了使用 Unwind Segue 方法的解决方案。 任何有类似问题的人都可以查看这些链接:
如何进行放松转场: What are Unwind segues for and how do you use them?
如何使用 unwind segue 传递数据: iOS 6 - can i return data when i unwind a segue?
【问题讨论】:
-
[NSMutableArray arrayWithArray:ValgteMedierarray];最好是[NSMutableArray arrayWithArray:[ValgteMedierarray copy]];,因为arrayWithArray:方法不期望数组的可变版本。 -
你已经做了哪些调试?您是否已验证
viewC.TilvalgteMedierArray包含项目?你检查过每个表的委托方法的返回值吗? -
@JörgKirchhof 不,你错了。
[NSMutableArray arrayWithArray:ValgteMedierarray]非常好。试试看。 -
当然可以——但它不是好的编码风格。 API 要求他提供
NSArray,他提供了NSMutableArray。调用copy强制NSMutableArray提供自身的不可变版本。 -
@TimothyMoose 我已经验证
viewC.TilvalgteMedierArray确实包含项目。不过,我还没有做过委托的事情。我应该在其中寻找什么?
标签: ios objective-c uitableview