2013-07-22 82 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; 

    }