Ios 执行segue没有任何影响
我有以下代码:Ios 执行segue没有任何影响,ios,sqlite,segue,viewcontroller,Ios,Sqlite,Segue,Viewcontroller,我有以下代码: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { indexPathRow = indexPath.row; NSLog(@"indexPathRow.%d", indexPathRow); mylist.recordIdToEdit = [[myIdArray objectAtIndex:indexPath
- (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标识符正确,如果我的segue准备中没有任何处理,则执行segue工作正常!此外,我还尝试将提取数据从DB移动到详细视图控制器,而不是在其viewdidload中的PrepareForsgue。这也没有效果。未显示详细信息视图控制器,并且未引发任何错误。节目到此为止
! 删除行
[self performSegueWithIdentifier:@"DetailsViewController" sender:nil];
从didSelectRowAtIndexPath,然后重试
确保您的segue具有标识符名称DetailsViewController您可以通过选择segue并选择属性检查器序列图像板segue标识符名称来检查这一点。我认为您应该尝试将数据从DB提取到detailed view controller,但在不同的线程中
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
dispatch_async(queue, ^{
});
});
希望它能解决你的问题。你面临的问题是……问题是下一个VC没有出现。它停留在以前的VC。虽然没有抛出错误,但不执行segue!“mylist.recordIdToEdit”数组或strits int是什么-整数值然后做一件事删除此方法“prepareForSegue”并在NSUserDefaults中添加值这是一种简单的方法na。如果删除它,我应该在哪里执行segue?我已经确认我的标识符是正确的-(void)prepareforsgue:(UIStoryboardSegue*)segue sender:(id)sender此方法识别视图控制器更改只需删除[self-PerformsgueWithIdentifier:@“DetailsViewController”sender:nil];从-(void)tableView:(UITableView*)tableView选择rowatindexpath:(nsindepath*)indepath并尝试运行您的应用程序。让我们来看看。