2014-03-01 36 views
0

首先,我很抱歉請求另一個代表團的問題。我讀了很多,找不到任何處理傳遞一些複雜的東西...具有自定義類對象的IOS委託;將對象從模態視圖傳遞給父視圖

這就是我在做什麼... 在我的應用程序,我有一個ViewController:CollisionViewController我想讓用戶選擇兩輛涉及碰撞的車輛。所有車輛都使用CoreData存儲並在SelectVehicleViewController中以模態方式呈現。 SelectVehicleViewController列出使用UICollectionView的所有車輛。在CollisionViewController中,我擁有屬性Vehicle1和Vehicle2,它們是描述車輛屬性的自定義類。

在CollisionViewController中,我使用UIButton來讓用戶首先選擇Vehicle1,然後從SelectVehicleViewController中選擇Vehicle2以模態方式呈現。

我使用seques來確定在呈現模式SelectVehicleViewController之前哪個按鈕被按下。

如何設置協議,允許用戶將選定的車輛從模態視圖傳遞到CollisionViewController中正確的車輛對象?

+0

添加相關代碼示例。 – Prem

回答

0

collisionViewController應符合您的協議。

collisionViewController.h

#import "SelectVehicleViewController.h" 
@interface ContactViewController : UIViewController <SelectVehicleDelegate> 

collisionViewController.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqual:@"segueName"]) { 
     SelectVehicleViewController* VC = segue.destinationViewController; 
     VC.delegate = self; 
     //here you should probably send if you will select the vehicule 1 or 2 
    } 
} 

- (void)ViewController:(UIViewController *)sender 
     didUpdateData:(NSString *)value { 
    //do what you need with new data 
    //here you should have info if it is for vehicle 1 or 2 
} 

SelectVehicleViewController.h

@protocol SelectVehicleDelegate; 

@interface SelectVehicleViewController : UIViewController 

@property (nonatomic, assign) id <SelectVehicleDelegate> delegate; 

@end 

@protocol SelectVehicleDelegate <NSObject> 

- (void)ViewController:(UIViewController *)sender 
      didUpdateData:(NSString *)value;  //adapte according to what you should send back 

@end 

SelectVehicleViewController.m

//somewhere in a button click or.... 
[self.delegate ViewController:self didUpdateData:@"new value"]; 
    //in this function you should have info if it is for vehicle 1 or 2 
+0

完美。謝謝您的幫助! – BBruce

相關問題