2013-10-18 73 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

不要它幫助我,謝謝。 –

相關問題