2014-01-06 73 views
1

我有兩個視圖控制器。 第一個是從資產庫加載圖像的自定義視圖控制器。 第二個視圖控制器顯示所選圖像的全尺寸取消&刪除按鈕IOS:在自定義視圖控制器和視圖控制器之間傳回數據

我已經使用下面的代碼從定製視圖控制器中刪除選定的圖像。 customviewcontroller.m

-(void)deleteItemsFromDataSourceAtIndexPaths:(NSArray *)itemPaths 
{ 
//here i want to control the delete option when cancel pressed 
NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet]; 
for (NSIndexPath *itemPath in itemPaths) { 
[indexSet addIndex:itemPath.row]; 
} 
[self.selectedAssets removeObjectsAtIndexes:indexSet]; 
} 
/* call the delete function*/ 
- (void) collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
    { 
    NSArray *selectedItemsIndexPaths = [self.collectionview1 indexPathsForSelectedItems]; 
    [self deleteItemsFromDataSourceAtIndexPaths:selectedItemsIndexPaths]; 
    [self.collectionview1 deleteItemsAtIndexPaths:selectedItemsIndexPaths]; 
    } 

用於從自定義視圖控制器刪除所選擇的圖像此工作的罰款。 但它的作品也取消。現在,我想控制取消刪除。 請幫我解決這個問題。

我已經嘗試使用按鈕標籤來識別哪個按鈕被按下。但不能自定義VC控制 secondview.m

- (IBAction)CancelPhoto:(id)sender{ 
[Cancel setTag:1]; //set tag value at cancel 
} 
+3

選擇解決方案: http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers?rq=1 –

回答

1

有幾種方法可以查看控制器之間傳遞的日期。我給你一個非常簡單的解決方案,根據你的要求:

假設你在第一個視圖控制器中有一個可變數組中的所有圖像。

NSMutableAray *imagesArray; 

在第二個視圖控制器中創建NSMutableArray類型的屬性圖像數組。

@property(nonatomic, strong) NSMutableAray *imagesArray; 

您的陣列分配財產,同時推動/呈現視圖

secondController.imagesArray = imagesArray; 

刪除事件從數組中刪除該圖像。

[self.imagesArray removeObjectAtIndex:selectedIndex]; 

解僱/彈出任何你想去的地方你的第二個觀點,並刷新你的第一個視圖控制器viewWillAppear中viewDidAppear方法。

當你已通過您的主圖像陣列的引用,這兩個類(視圖控制器)通過指針共享相同的數組,並從任一側在陣列中的變化將在兩個屏幕

0

有3種方式被反射(在我的意見):

  1. 代表
  2. 通知
  3. 時:您正在使用的數據庫,只是刪除圖像的URL並重新加載數據
相關問題