我的应用程序使用不同的主细节,它包含在带有 tableView 的初始 ViewController 中,但是当用户单击导航控制器中的添加按钮时,我需要使用以下函数发送一个对象:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"AddDGV"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];
[[segue destinationViewController] setDetailView:object];
}
}
当目标是另一个 ViewController 时,代码可以正常工作,但我的应用程序被设计为使用 TabBarController 而不是 ViewController。此 TabBar 有 2 个选项卡,每个选项卡都有不同的导航控制器,第一个是标识符“AddDGV”的目标。我创建了 .m/.h 文件并在情节提要中关联了该类,并将实例变量“DetailView”设置为 ID。
@property (strong, nonatomic) id detailItem;
问题是编译器不知道这个变量,因为命令[segue destinationViewController]
包含视图控制器,其内容应该显示在 segue 的末尾。由于 segue 的结尾是 TabBarController,因此该功能不起作用。
有人知道怎么解决吗???