首先,我需要澄清的是,当我不使用详细信息披露按钮而只使用披露指示器时,一切正常。
经过相当多的研究后,当点击详细信息披露按钮时,我正在努力解决如何将正确的数据从一个表格视图传递到另一个表格视图。我正在使用核心数据来存储我的数据,并且我已经创建了从主 UITableViewController (SGProfileTVC) 到细节 SGItemDetailsTVC 的适当的 segue (Item Details Segue)。
这是我对 prepareForSegue 的实现:(UIStoryboardSegue *)segue sender:(id)sender
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"Add Item Segue"])
{
NSLog(@"Setting SGProfileTVC as a delegate of SGAddItemTVC");
SGAddItemTVC *sgAddItemTVC = segue.destinationViewController;
sgAddItemTVC.delegate = self;
sgAddItemTVC.managedObjectContext = self.managedObjectContext;
} else if([segue.identifier isEqualToString:@"Item Details Segue"])
{
NSLog(@"Setting SGProfileTVC as a delegate of SGItemDetailTVC");
SGItemDetailTVC *sgItemDetailTVC = segue.destinationViewController;
sgItemDetailTVC.delegate = self;
sgItemDetailTVC.managedObjectContext = self.managedObjectContext;
// Store selected item in selectedItem property
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
self.selectedItem = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSLog(@"Passing the selected item (%@) to SGItemDetailTVC", self.selectedItem.name);
sgItemDetailTVC.item = self.selectedItem;
} else {
NSLog(@"Unidentified Segue");
}
}
我还实现了 tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 方法
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"Item Details Segue" sender:[self.tableView indexPathForSelectedRow]];
}
发生的事情是它通常会继续,但是当新的 tableview 加载时它不包含任何数据。
任何建议将不胜感激!
谢谢!