2010-09-07 64 views
0

所以我有一個tableview作爲根屏幕和一個添加按鈕,它提供了一個帶有日期選擇器的新屏幕。當我呈現新視圖時,我將根屏幕設置爲委託。關於將數據傳遞給iOS中的代表的問題

現在,我需要回到從屏幕的UIDatePicker的數據傳遞到其委託的,但我不記得這是如何工作的?

我知道,我應該能夠調用方法存在於新日期選擇器視圖的根屏幕中,但是我再也記不起語法了。

我知道我以前做過,但我已經有一段時間了,因爲我一直在使用可可,我只是想回想一下。

感謝您的幫助!

回答

0

這應該足以刷新你的記憶。

MyDatePickerViewController.h:

@protocol MyDatePickerViewControllerDelegate; 

@interface MyDatePickerViewController; 

MyDatePickerViewController : UIViewController 
{ 
    id<MyDatePickerViewControllerDelegate> delegate; 

    NSDate* selectedDate; 
} 

@property (nonatomic, assign) id<MyDatePickerViewControllerDelegate> delegate; 
@property (nonatomic, retain) NSDate* selectedDate; 

@end 

@protocol MyDatePickerViewControllerDelegate 
- (void)myDatePickerViewControllerDidFinish:(MyDatePickerViewController*)myDatePickerViewController; 
@end 

MyDatePickerViewController.m:

@implementation MyDatePickerViewController 

@synthesize delegate; 
@synthesize selectedDate; 


- (void)dealloc 
{ 
    [selectedDate release]; 
    [super dealloc]; 
} 

- (void)someMethodCalledWhenUserIsDonePickingDate 
{ 
    [delegate myDatePickerViewControllerDidFinish:self]; 
} 

MyRootViewController.h:

#import MyDatePickerViewController 

@interface MyRootViewController : UIViewController <MyDatePickerViewControllerDelegate> 
{ 
    ... 
} 

@end 

MyRootViewController.m:

@implementation MyRootViewController 

- (void)myDatePickerViewControllerDidFinish:(MyDatePickerViewController*)myDatePickerViewController 
{ 
    NSDate* date = myDatePickerViewController.selectedDate 
    // Do something with the date that was chosen 
} 

@end