UIAlertController를 인스턴스화하고 UITatePicker를 UITextField 중 하나에 입력보기로 지정합니다. 또한 Picker에 ValueChanged 이벤트 처리기를 할당했습니다. UIDatePicker 올바르게 언급 된 UITextField 포커스를 얻을 때 보여줍니다 있지만 응용 프로그램 충돌 날짜 값을 변경할 때.UIAlertController의 UITextField에 대한 UIDatePicker의 ValueChanged에서 응용 프로그램이 충돌합니다.
아래 코드를 고려하십시오.
var d = UIAlertController.Create("Confirm", "Fill below with the required info.", UIAlertControllerStyle.Alert);
d.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, ((UIAlertAction obj) => SubmitAction(obj, d))));
d.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null));
d.AddTextField((delegate(UITextField obj) {
UIDatePicker picker = new UIDatePicker();
picker.ValueChanged += (object sender, EventArgs e) => { obj.Text = picker.Date.Description; };
obj.InputView = picker;
}));
PresentViewController(d, true, null);
다시 피커가 잘 나타납니다. 앱이 EMPTY 처리기 picker.ValueChanged += (object sender, EventArgs e) => {};
인 경우에도 ValueChanged 이벤트에서 충돌합니다.
이벤트 처리기를 추가하지 않으면 충돌이 없습니다!
이 코드는 TouchUpInside 이벤트 핸들러에 있습니다.
어디에서 잘못 했습니까?
죄송합니다. 전적으로 게시물을 엉망으로 만들었습니다. TouchUpInside는 원래 POST에서 전혀 필요하지 않았습니다. 필수 이벤트 핸들러는 제목 ValueChanged에 지정된 이벤트 핸들러입니다. 나는 그것을 새롭게했다. 그러나 이제는 제안한대로 클래스 범위 참조를 유지하려고 노력할 것입니다. – Shockwaver
그리고 그건 절대적으로! 너무 일찍 수집. 글로벌 레퍼런스가 트릭을 만들었습니다! 다시 한 번 감사드립니다! – Shockwaver