2013-09-24 2 views
3

내보기 중 하나에 datepicker를 구현했습니다. Alertview에 datepicker가 추가되었습니다. 이제 iOS 7에서 alertp에서 datepicker를 찾을 수 없습니다. 검색 한 결과, iOS7의 alertview에 아무 것도 추가 할 수 없습니다.iOS7의 UIALertView에 UIDatePicker를 추가하는 방법

나의 요구 사항은 DOB 텍스트 필드를 선택할 때 Datepickerview를 표시하고 날짜를 수정해야하며 변경된 값이 텍스트 필드에 저장됩니다.

이제 내 문제는 alertp에 datepicker를 어떻게 표시 할 수 있는가입니다.

나는보기에 표시하려고 시도했지만보기에서 datpicker를 제거하려고 시도하면 작동하지 않습니다.

답변

0

UIAlertView의 계층 구조는 개인 정보이므로 수정할 수 없습니다. 있는 그대로와 하위 클래스를 지원하지 않습니다

Apple docs

에서 UIAlertView 클래스는 사용하기위한 것입니다. 이 클래스의보기 계층 구조는 비공개이며 수정할 수 없습니다.

는 아이폰 OS 6까지, 당신은 UIAlertView 파단 계층에 대한 몇 가지 의견을 추가 할 수 있지만, 이것은 아이폰 OS 7에 더 이상 beta4의 릴리스 이후 개인 바르 만들어졌다 iOS7에 대한 발표 된 contentView 속성을 작동하는 것 같다하지 않습니다 따라서 addSubview에 경고를 보내지 못하게합니다. 이에 대한 자세한 내용은

UIView *_contentViewNeue; 

참조이 Apple dev forum discussion 당신이 UIAlertView을 흉내 낸 사용자 정의보기를 만든 다음 피커보기를 추가하는 것을 사용한다, 이러한 상황에서

(당신은 로그인해야합니다).

희망 하시겠습니까?

3

난이 오래된 질문 알아요,하지만 난 다음은 영업 이익이 요청 것을 허용 믿고 내가 AlertView 계층 구조의 변화와 관련된 애플의 규칙을 위반하는 것이라고 생각하지 않습니다

- (void)requestDateOfBirth 
{ 
UIDatePicker *birthDatePicker; 
UIAlertView *setBirthDate; 
NSDateFormatter *birthDateFormatter; 
UITextField *birthDateInput; 
//create the alertview 
setBirthDate = [[UIAlertView alloc] initWithTitle:@"Date of Birth:" 
               message:nil 
              delegate:self 
            cancelButtonTitle:@"Cancel" 
            otherButtonTitles:@"OK", nil]; 
setBirthDate.alertViewStyle = UIAlertViewStylePlainTextInput; 

//create the datepicker 
birthDatePicker = [[UIDatePicker alloc] init]; 
[birthDatePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged]; 
birthDatePicker.datePickerMode = UIDatePickerModeDate;  
birthDatePicker.date = [NSDate date]; 
//get the textfield provided in the plain text alertview 
birthDateInput = [setBirthDate textFieldAtIndex:0]; 
//change the textfields inputView to the date picker 
birthDateInput.inputView = birthDatePicker; 
[birthDateInput setTextAlignment:NSTextAlignmentCenter]; 
//create a date formatter to suitably show the date 
birthDateFormatter = [[NSDateFormatter alloc] init]; 
[birthDateFormatter setDateStyle:NSDateFormatterShortStyle]; 
//set the current date into the textfield 
birthDateInput.text = [birthDateFormatter stringFromDate:[NSDate date]]; 
//show the alert view and activate the textfield 
[setBirthDate show]; 
[birthDateInput becomeFirstResponder]; 
} 

그런 다음 잊지 마세요를 날짜 선택의 변화를 처리

- (void) dateChanged:(id)sender 
{ 
NSDateFormatter *birthDateFormatter; 
UIDatePicker *birthDatePicker = (UIDatePicker *)sender; 

birthDateFormatter = [[NSDateFormatter alloc] init]; 
[birthDateFormatter setDateStyle:NSDateFormatterShortStyle]; 
birthDateInput.text = [birthDateFormatter stringFromDate:birthDatePicker.date]; 
} 

나는이

+0

감사입니다 –

1

아이폰 OS 7에서 당신이

을 사용할 수 있습니다 도움이되기를 바랍니다
[alertView setValue:yourDataPicker forKey:@"accessoryView"]; 

전체 설명 :) 도움을 here

관련 문제