【问题标题】:Question regarding passing data to the delegate in iOS关于在 iOS 中将数据传递给委托的问题
【发布时间】:2011-04-09 07:52:54
【问题描述】:
所以我有一个表格视图作为根屏幕和一个添加按钮,该按钮显示一个具有日期选择器的新屏幕。当我展示新视图时,我将根屏幕设置为委托。
现在,我需要将数据从 uidatepicker 屏幕传回其委托,但我不记得应该如何工作...
我知道我应该能够从新的 datepicker 视图调用根屏幕中存在的方法,但是我还是记不起语法了。
我知道我以前做过,但我已经有一段时间没有使用 Cocoa 了,我只是想回忆一下。
感谢您的帮助!!
【问题讨论】:
标签:
iphone
delegates
ios
uidatepicker
【解决方案1】:
这应该足以刷新你的记忆。
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