2013-10-18 54 views
0

默认情况下当我在剩余的应用中创建一个UIDate选择器时,当我点击完成时,当前时间必须在默认情况下输入,或者如果日期选择器是动画日期值可以改变,但在我的情况下,当前时间不会在默认情况下返回!请帮帮忙,1.My RemainderSetUpViewcontroller.h `UIDatePicker没有返回默认的当前时间和日期

@protocol RemainderDelegate <NSObject> 
-(void)store:(NSArray *) remainderDel:(NSArray *) TimeDateDel; 
@end 

@interface RemainderSetUpViewcontroller : UIViewController<UITextFieldDelegate,UITextFieldDelegate> 
{ 

    UITextField *textField1; 
    NSString *str; 
    UIDatePicker *datePicker; 
    NSDate *date; 
    NSMutableArray *remainder; 
    NSMutableArray *TimeDate; 
    UILocalNotification* notification; 
} 

@property (strong, nonatomic)IBOutlet NSString* remainderr; 
@property (strong, nonatomic)IBOutlet NSString *index; 
@property(strong, nonatomic) id <RemainderDelegate> delegate; 
-(void)addRemainder; 
-(void)actionDone; 
@end 
` 

2My RemainderSetUpViewcontroller.m:

- (void)viewDidLoad 
{ 


    [super viewDidLoad]; 

    [self.view setBackgroundColor:[UIColor whiteColor]]; 
    UIBarButtonItem *add = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(addRemainder)]; 
    self.navigationItem.rightBarButtonItem=add; 

    //TextField1............................................................................................................... 

    [email protected]"Add Remainder"; 


    textField1 = [[UITextField alloc]initWithFrame:CGRectMake(20, 60, 280, 34)]; 
    textField1.borderStyle = UITextBorderStyleRoundedRect; 
    textField1.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 
    textField1.delegate = self; 
    textField1.placeholder = @"Enter the Reminder name"; 
    [self.view addSubview:textField1]; 
    //datePicker&TextField2.................................................................................................... 



    datePicker=[[UIDatePicker alloc]initWithFrame:CGRectMake(0,210, self.view.frame.size.width, self.view.frame.size.height)]; 

    [datePicker addTarget:self action:@selector(actionDone) forControlEvents:UIControlEventValueChanged]; 


    [self.view addSubview:datePicker]; 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadData" object:self]; 





//UserDefaults............................................................................................................. 

     NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 
     remainder = [[NSMutableArray alloc]init]; 
     TimeDate = [[NSMutableArray alloc]init]; 

    if ([ud objectForKey:@"remainder"]) 
    { 
     remainder = [[ud objectForKey:@"remainder"]mutableCopy]; 
     TimeDate = [[ud objectForKey:@"TimeDate"]mutableCopy]; 
    } 



    //to make the fields visible when we try to edit it............................................................................ 

    if ([remainderr isEqualToString:@"edit"]) 
    { 

     self.title = @"Reminder Edit"; 

     textField1.text = [remainder objectAtIndex:[index integerValue]]; 
     str = [TimeDate objectAtIndex:[index integerValue]]; 
    } 
} 

#pragma mark - doneClicked 

//DoneButton................................................................................................................. 

-(void)actionDone 
{ 

    date = datePicker.date; 
    NSDateFormatter *dateform=[[NSDateFormatter alloc]init]; 
    [datePicker setDate:[NSDate date]]; 
    dateform.dateFormat = @"dd-MM-YYYY HH:mm:SS"; 
    str=[dateform stringFromDate:date]; 
} 



#pragma mark - AddRemainder Notifications 

//addButton................................................................................................................. 

-(void)addRemainder 
{ 
    //LocalNotification......................................................................................................... 
    notification = [[UILocalNotification alloc] init]; 
    notification.fireDate = date; 
    notification.timeZone = [NSTimeZone defaultTimeZone]; 
    notification.soundName = UILocalNotificationDefaultSoundName; 
    [[UIApplication sharedApplication] scheduleLocalNotification:notification]; 
    //NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 

    if ([remainderr isEqualToString:@"edit"]) 
    { 
     [remainder replaceObjectAtIndex:[index integerValue] withObject:textField1.text]; 
     [TimeDate replaceObjectAtIndex:[index integerValue] withObject: str]; 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 
    else if([remainderr isEqualToString:@"delete"]) 
    { 
     [[UIApplication sharedApplication] cancelLocalNotification:notification]; 

    } 
    else 
    { 
     if((textField1.text!=NULL)&&(date!=NULL)) 
      { 
     [remainder addObject:textField1.text]; 

     [TimeDate addObject: str]; 
     [self.navigationController popViewControllerAnimated:YES]; 
      } 
     else 
     { 

      UIAlertView *myAlert = [[UIAlertView alloc]initWithTitle:@"Alert !" message:@"Please Give a title for your Remainder " delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
      [myAlert show]; 


     } 
    } 


//Adding objects............................................................................................................ 


    //NSLog(@"%@ %@", remainder, TimeDate); 

    [self.delegate store:remainder :TimeDate]; 

    NSLog(@"The notifications is \n %@",notification); 





} 



- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 

    return YES; 
} 
@end 

` 
Thank you. 
+0

这是哪个错误?你可以发布错误意味着错误的时间和日期或一些图片吗? – user1673099

+0

没有错误,我需要获取默认的当前日期,但我必须点击至少一次来设置日期。我需要日期在“当前时间默认”。 - 谢谢 –

+0

我试着做“NSLog(@”通知是\ n%@“,通知);”并且日志消息是:'2013-10-18 12:23:36.010剩余[2433:207]通知是 {fire date =(null),time zone = Asia/Kolkata(IST)offset 19800,重复间隔= 0,重复计数= UILocalNotificationInfiniteRepeatCount,下一个火灾日期= 2013年10月18日星期五下午12:23:36印度标准时间}' –

回答

-1

只是在你的代码

datePicker.datePickerMode = UIDatePickerModeDateAndTime; 

添加以下行添加一条线一条线后,到您的代码并尝试

datePicker.date=[NSDate date];        
+0

不要它帮助我,谢谢。 –

相关问题