2014-06-11 3 views
0

textField를 클릭하면 datePicker를 표시해야합니다. showInView가 호출dateSheet의 UIDatePicker 오류 showInView

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
[self setDate]; 
    return NO; 
} 


-(void)setDate{ 

dateSheet = [[UIActionSheet alloc] initWithTitle:Nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil]; 

[dateSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; 

CGRect pickerFrame = CGRectMake(0, 44, 0, 0); 
UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:pickerFrame]; 
[datePicker setDatePickerMode:UIDatePickerModeDateAndTime]; 
NSDate * maxDate = [NSDate dateWithTimeIntervalSinceNow:(3600 * 24 * 14)]; 
datePicker.maximumDate = maxDate; 
datePicker.minimumDate = [NSDate date]; 
[dateSheet addSubview:datePicker]; 

UIToolbar * controlToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, dateSheet.bounds.size.width, 44)]; 

[controlToolBar setBarStyle:UIBarStyleBlack]; 
[controlToolBar sizeToFit]; 

UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

UIBarButtonItem *setButton = [[UIBarButtonItem alloc] initWithTitle:@"Imposta" style:UIBarButtonItemStyleDone target:self action:@selector(dismissDate)]; 
setButton.tintColor = [UIColor whiteColor]; 

UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Annulla" style:UIBarButtonItemStyleDone target:self action:@selector(cancelDate)]; 
cancelButton.tintColor = [UIColor whiteColor]; 

[controlToolBar setItems:[NSArray arrayWithObjects:spacer, cancelButton, setButton, nil] animated:NO]; 

[dateSheet addSubview:controlToolBar]; 
[dateSheet showInView:self.view]; 
[dateSheet setBounds:CGRectMake(0, 0, 320, 485)]; 
} 

, 많은 오류가 콘솔에 표시됩니다 :

CGContextSetFillColorWithColor : 유효하지 않은 컨텍스트 0x0으로 다음은 코드입니다. 이것은 심각한 오류입니다. 이 응용 프로그램 또는이 응용 프로그램이 사용하는 라이브러리는 잘못된 컨텍스트를 사용하므로 시스템 안정성과 안정성이 전반적으로 저하됩니다. 이 통지는 예의입니다.이 문제를 해결하십시오. 곧 업데이트 될 치명적인 오류가 될 것입니다.

는 다음과 같은 메시지가 : CGContextSetStrokeColorWithColor CGContextSaveGState CGContextSetFlatness CGContextAddPath CGContextDrawPath CGContextRestoreGState

는 왜 이런 일이 일어나는가?

답변

1

코드를 실행 한 후 문제가 UIActionSheet의 nil 제목으로 인해 발생한 것을 발견했습니다. 해결 방법은 다음과 같이 수정되었습니다.

dateSheet = [[UIActionSheet alloc] initWithTitle:@"" delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil]; 

또 다른 좋은 resource을 참조하십시오.

+0

발견 된 관련 문제 [여기] (http://stackoverflow.com/questions/19011170/invalid-context-error-on-ios-7-when-adding-a-uipickerview-inside-a-uiactionsheet). –