iOS5를 업데이트 한 후 내 앱에서 이상한 일이 발생했습니다.iOS5에서 UIPickerView selectedRowInComponent와 다른 이상한 동작이 발생했습니다.
나는 UIPickerView를 가지고 있으며 선택한 구성 요소를 가져 오는 데 [customPickerView selectedRowInComponent:0]
을 사용합니다. 확인시
i = [customPickerView selectedRowInComponent:0]; // -> i is 1 here, is OK!
[smsAgent sendSMS:smsTxt]; //just call another method to send a SMS
i
의 값은 OK이다 사용자
그래서 그것은 같다 (지수 1) 번째 행을 선택합니다.
smsAgent...
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = delegate;
picker.recipients =[NSArray arrayWithObject: myTelNumber];
[delegate presentModalViewController:picker animated:YES];
확실히 아무것도 안하고 내 피커 : 지금 난 그냥 같이 본질적으로 보이는 일반 SMS 대화 smsAgent
를 호출합니다.
그러나
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
[self dismissModalViewControllerAnimated:NO]; //take away the SMS screen fast, so we can send selectModeVCDidFinish to take away ourselves
int j = [customPickerView selectedRowInComponent:0];
[self.delegate selectModeVCDidFinish: selectedMode];
}
이 "반환"값
j는 다시 0 일 때, 1이 아닌!
customPickerView에는 아무런 변화가 없습니다. 실제로 당황합니다.
iOS5로 업데이트하기 전에 아무런 문제가 없었습니다.
내가 빠뜨린 것이 있습니까?
많은 감사
나는 내 댓글에 기록 된 것처럼
이 호출이 모두 동일한 객체에 있습니까? 작성 컨트롤러에 대해 설정 한 "위임"은 포켓보기를 소유 한보기 컨트롤러입니까? 내 생각 엔 마지막 코드 세그먼트에서 customPickerView가 실제로 nil이라는 것입니다. – jrturton
아니요 - 그렇지 않습니다. UIPickerView는 대리자로 자체를 제공하는 smsAgent 개체를 호출하는 개체 A에만 있습니다. 따라서 smsAgent는 UIPickerView를 보유하고있는 객체 A로 되돌아갑니다. 그러나 반환 후 picked value는 다시 올바르지 않습니다 ... – user387184
'i'는 ivar처럼 보이기 때문에'j = i'를 설정하지 않으시겠습니까? – msgambel