0

デフォルトUIDateでは、残りのアプリでピッカーを作成しているときに、完了をクリックすると、デフォルトで現在の時刻を入力する必要があります。または、日付ピッカーがアニメーション化されている場合、日付の値は変更できますが、私の場合、現在の時刻はデフォルトで返されません! 助けてください、1.私のReminderSetUpViewcontroller.h `

@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...............................................................................................................   

    self.title=@"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.
4

2 に答える 2

-1

コード内の行の後に 1 行追加するだけです

datePicker.datePickerMode = UIDatePickerModeDateAndTime;

以下の行をコードに追加して試してください

datePicker.date=[NSDate date];                            
于 2013-10-18T06:58:08.907 に答える