2010-09-29 29 views
3

我正在使用Ed Marty的回答中的代碼here,但我在幾位中遇到了麻煩。如何實現模式日期選擇器?

點擊一個按鈕我已經有日期選擇器出現,但'完成'按鈕不是。

[delegate datePickerController:controller didPickDate:datePicker.date]; 

錯誤消息:

「控制器」未聲明(第一次在這個函數中使用)

總之,我有6個文件,我還從線得到一個錯誤:

  • ModalDatePickerViewController.m
  • ModalDatePickerViewController.h
  • ModalDatePickerAppDelegate.m
  • ModalDatePickerAppDelegate.h
  • DatePickerController.m
  • DatePickerController.h

我DatePickerController.h正在尋找這樣的:

#import <UIKit/UIKit.h> 


@class DatePickerController; 
@protocol DatePickerControllerDelegate 
- (void) datePickerController:(DatePickerController *)controller didPickDate:(NSDate *)date; 
@end 

@interface DatePickerController : UIViewController { 
    UIDatePicker *datePicker; 
    NSObject <DatePickerControllerDelegate> *delegate; 
} 

@property (nonatomic, retain) UIDatePicker *datePicker; 
@property (nonatomic, assign) NSObject <DatePickerControllerDelegate> *delegate; 
@end 

和DatePickerController.m:

#import "DatePickerController.h" 

@implementation DatePickerController 

@synthesize datePicker; 
@synthesize delegate; 

- (void) loadView { 
    self.view = [[[UIView alloc] init] autorelease]; 
    self.datePicker = [[[UIDatePicker alloc] init] autorelease]; 
    [self.view addSubview:self.datePicker]; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [button setTitle:@"Done" forState:UIControlStateNormal]; 
    button.center = CGPointMake(160,230); 
    [button addTarget:self action:@selector(done) forControlEvents:(UIControlEventTouchUpInside)]; 
    [self.view addSubview:button]; 
} 

- (void) done { 
    [delegate datePickerController:controller didPickDate:datePicker.date]; 
} 

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

@end 

在主視圖我有一個按鈕,調用這個類如下:

#import "ModalDatePickerViewController.h" 

@implementation ModalDatePickerViewController 

- (void) pickDate { 
    DatePickerController *screen = [[[DatePickerController alloc] init] autorelease]; 
    screen.delegate = self; 
    [self presentModalViewController:screen animated:YES]; 
} 

- (void) datePickerController:(DatePickerController *)controller didPickDate:(NSDate *)date { 
    //[self doSomethingWithDate:date]; 
    [controller dismissModalViewControllerAnimated:YES]; 
} 
- (IBAction)HitMe:(id)sender { 
    [self pickDate]; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
} 

- (void)viewDidUnload { 
} 

- (void)dealloc { 
    [super dealloc]; 
} 
@end 

和:

#import <UIKit/UIKit.h> 
#import "DatePickerController.h" 

@interface ModalDatePickerViewController : UIViewController <DatePickerControllerDelegate> { 

} 

- (IBAction)HitMe:(id)sender; 

@end 
+0

什麼是錯誤...? – RickiG 2010-09-29 12:34:16

+0

對不起RickiG這可能有幫助!我現在已經添加到帖子...哦,並且溫柔一點新手... – jimbo 2010-09-29 12:51:29

回答

4

在此行中:

[delegate datePickerController:controller didPickDate:datePicker.date];

嘗試用0123代替。

相關問題