我在我的UISplitViewController
使用prepareForSegue,并且NSMutableDictionary
填充UITableView
部分。我想要做的是将所选部分中所选值的值传递给我detailViewController
中的方法,这是我到目前为止所得到的:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSString *strPOIndex = [self.tableData[indexPath.row] valueForKey:@"Vendor"];
LHContactsDetail *controller = (LHContactsDetail *)[[segue destinationViewController] topViewController];
[controller setDetailItem:strPOIndex];
controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
controller.navigationItem.leftItemsSupplementBackButton = YES;
}
}
但问题是,它返回第一部分的编号项。例如,如果我单击第2部分第1项,它将返回第1部分第1项,如果我单击第3部分第2项,它将返回第1部分第2项。我希望这是有道理的。这就是我填充桌面视图的方式:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
NSString *sectionTitle = [contactSectionTitles objectAtIndex:indexPath.section];
NSArray *sectionContacts = [contactDirectoryFinal objectForKey:sectionTitle];
NSString *contacts = [[sectionContacts objectAtIndex:indexPath.row] valueForKey:@"Vendor_Name"];
cell.textLabel.text = contacts;
return cell;
}
如何获取要发送到detailController
方法的正确值?
答案 0 :(得分:1)
我想知道为什么你的数据源在cellforrow中有所不同并为segue做准备。 如果您以与节和行相同的方式进行管理。 您需要首先通过indexpath.section从数据源获取数据,然后使用indexpath.row在prepareforsegue方法中更改此数据。