2012-08-24 19 views
5

enter image description hereUIDatePicker El valor seleccionado es incorrecto en el caso UIDatePicker no se desplaza

estoy haciendo una aplicación para el iPhone en el que estoy usando UIDatePicker y la selecciona el tiempo en un actionsheet mostrar. En la hoja de acciones, el tiempo se muestra con un intervalo de 10 minutos.

textfield valor se establece correctamente cuando me desplazo el Datepicker

Si No de desplazamiento de la hoja de la acción a continuación, haga clic en el botón de selección directa campo de texto a continuación, ajustar la hora actual (11:56) pero selecciono en hoja de acción (11:50) tiempo. (textfield) muestra el valor incorrecto.

¿Cómo puedo establecer el valor de textfield (11:50). Dame alguna solución.

+0

NSLog su valor seleccionado es decir youdatepicker.date –

+0

seleccione [12:30] y nslog 12:37 si no me desplazo ....y si me desplazo luego [selcet 12:30] .. nslog 12:30 –

Respuesta

1

EDIT Haga que su clase controle el evento UIControlEventValueChanged en su selector. Añadir esta línea método viewDidLoad o cuando su actionsheet muestra:

[picker addTarget:self action:@selector(dateChanged:) 
      forControlEvents:UIControlEventValueChanged]; 

Ahora selector sería llamado cuando la fecha se cambia

ACTUALIZACIÓN

- (void) dateChanged:(id)sender{ 
    // handle date changes and set in textField 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here 
    self.dateTexField.text = strdate; 
} 

Si el método anterior no se llama significa la fecha es no modificado, por lo tanto, siempre configure la fecha predeterminada en su campo de texto. fecha


Convertir a objeto de cadena

ACTUALIZACIÓN

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here 

valor establece ahora en el campo de texto así:

self.dateTextField.text = strdate; 
+0

hago esto ... esto funcionará correctamente cuando me desplazo. pero no en el caso cuando hago tapping directamente sobre el botón de selección –

+1

que no funciona, código ur :( –

1

acaba de establecer la dateSelected de su selector de fecha después de seleccionar botón presionar ....

NSDate *date = datePicker.date; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd/MM/yyyy"];  
NSString *dateString = [formatter stringFromDate:date]; 
yourTxtField.text = dateString; 
0

Creo que la manera más fácil es simplemente asociar una barra de herramientas con un botón hecho a su TextField que tiene el UIDatePicker como su inputView. Mantenga un registro de su actual TextField manteniendo una referencia a él en TextViewDidBeginEditing. A continuación, en el botón de hecho hacer algo como esto:

if (_currentTextField == _myTextFieldThatUsesADatePicker) { 
    self.myDateProperty = _myDatePicker.date; 
} 
0

I no sabe de esta manera correcta equivocado, pero su trabajo para mí

-(void)selectedTime{ 
    NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; 
// [outputFormatter setDateFormat:@"h:mm a"]; 
    [outputFormatter setDateFormat:@"HH:mm:ss"]; 
    selectedTime = [outputFormatter stringFromDate:datePicker.date]; 
    NSArray *temp=[selectedTime componentsSeparatedByString:@":"]; 
    NSLog(@"%@",temp); 
    NSInteger mins=[[temp objectAtIndex:1]integerValue]; 
    //check your interval here 
    if (mins<=29) { 
     selectedTime=[NSString stringWithFormat:@"%@:%@:%@",[temp objectAtIndex:0],@"00",@"00"]; 
    }else if (mins>=31 && mins<=59){ 
     selectedTime=[NSString stringWithFormat:@"%@:%@:%@",[temp objectAtIndex:0],@"30",@"00"]; 
    }else{ 
//  selectedTime = [outputFormatter stringFromDate:datePicker.date]; 
    } 
    if (self.delegate && [self.delegate respondsToSelector:@selector(SelectedValue:)]) { 
     [self.delegate SelectedValue:selectedTime]; 
    } 
    [self.popupController dismiss]; 
} 

Mi intervalo es 30 minutos

Cuestiones relacionadas