执行segue没有任何影响

时间:2014-11-19 11:01:41

标签: ios sqlite segue viewcontroller

我有以下代码:

- (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。这也没有效果。未显示详细信息视图控制器,并且不会引发任何错误。程序停在那里 !

2 个答案:

答案 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, ^{

  });
 });

希望它能解决您的问题。