我的应用程序使用不同的主要细节,它包含一个带有tableView的初始ViewController,但是当用户单击导航控制器中的Add按钮时,我需要使用follow函数发送一个对象:
- (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,因此该函数不起作用。
有人知道如何修复???
答案 0 :(得分:0)
Typecast输出
[segue destinationViewController]
如下
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"AddDGV"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];
[(YourDestinationViewController *)[segue destinationViewController] setDetailView:object];
}
}