我有以下代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
indexPathRow = indexPath.row;
NSLog(@"indexPathRow.%d", indexPathRow);
mylist.recordIdToEdit = [[myIdArray objectAtIndex:indexPathR NSLog(@"Item selected..%d", safetyInventoryList.recordIdToEdit);
[self performSegueWithIdentifier:@"DetailsViewController" sender:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"DetailsViewController"])
{
DetailsViewController *destViewController = segue.destinationViewController;
int itemIdToFetch = myList.recordIdToEdit;
[detailedList fetchDetails:itemIdToFetch];
destViewController.name = detailedList.itemName;
destViewController.itemId = itemIdToFetch;
}
}
我的segue标识符是正确的,如果我在preparefor segue中没有任何处理,执行segue工作正常!此外,我试图在其viewdidload中将获取数据从DB移动到详细视图控制器而不是prepareforsegue。这也没有效果。未显示详细信息视图控制器,并且不会引发任何错误。程序停在那里 !
答案 0 :(得分:0)
删除行
[self performSegueWithIdentifier:@"DetailsViewController" sender:nil];
来自didSelectRowAtIndexPath并尝试。
确保您的segue具有标识符名称DetailsViewController,您可以通过选择segue并选择Attribute Inspector StoryBoard segue标识符名称来检查。
答案 1 :(得分:0)
我认为你应该尝试将数据从DB提取到详细的视图控制器,但是在不同的线程中,
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
dispatch_async(queue, ^{
});
});
希望它能解决您的问题。