2013-07-22 44 views
0

我从plist中的数据填充tableView。当我选择一个单元格时,我使用prepareForSegue和indexPathForSelectedRow将plist数据带入一个详细视图控制器(DVC)。在DVC中,我有一个UIImageView,它使用switch语句加载特定图像,具体取决于在tableView中选择的行。这一切都正常工作。UIImage/tapgesturerecognizer /新视图

我想添加一个tapGestureRecognizer到我的UIImageView中,以便在我的DVC中点击图像可以调出一个新的视图控制器。在那个视图控制器中,我在UIScrollView上有一个UIImageView。我想从DVC的图像加载到下一个视图控制器,以便我可以缩放和平移图像。

我正在使用故事板。我确保我的DVC中的UIImageView启用了用户交互,并且我通过拖放添加了tapGestureRecognizer。然后我从tapGestureRecognizer创建了一个segue到我的最终视图控制器,并在模拟器中运行它。点击DVC中的图像激发最后一个视图控制器。

我无法弄清楚的是如何告诉UIImageView在最后一个视图控制器中显示来自DVC的图像,它总是根据tableView中选择的行而不同。

我希望这是有道理的,有人可能有一个想法,我可以做到这一点。

+1

有没有什么建议可以共享显示你已经尝试了任何的代码? –

+0

我甚至不知道从哪里开始。我的问题更重要的是,这是否可能,如果是的话,请指出我的方向是正确的。我开始想,也许照片浏览器可能是一条路。我正在研究这个。 – bronyaur

回答

0

我想通了。回顾一下,我需要从plist传递信息到基于在tableview中选择的行的详细视图控制器。然后,在详细视图控制器中,我希望能够点击图像并在新的视图控制器中打开图像。详细视图控制器中的图像由所选行设置,因此它不仅仅是创建第三个视图控制器并设置图像的问题。

由于在表格视图中选择了一行,因此数据将从plist传递到详细视图控制器。正被这里完成:

tableviewcontroller.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
     NSIndexPath *indexPath = [[self tableView] indexPathForSelectedRow]; 
     NSDictionary *bighornData = _bighornTable[indexPath.row]; 
     BighornDetailViewController *bhdvc = (BighornDetailViewController *) [segue destinationViewController]; 
     bhdvc.bighornData = bighornData; 
     bhdvc.bighornZoneNumber = indexPath.row; 
    } 

的图像在由存储在bighornData数量详细视图控制器被设置。当我意识到数字被存储在那里后,即使在详细视图控制器已经加载之后,它仍然是将该变量传递给最终视图控制器的事情,所以图像也可以在那里设置。

detailviewcontroller.m

-(void)prepareForSegue:(UIStoryboardSegue *) segue sender:(id)sender { 
     ImageViewController *ivc = (ImageViewController *) [segue destinationViewController]; 
     ivc.bighornZoneNumber = _bighornZoneNumber; 

    }