UIAlertController의 UITextField에 대한 UIDatePicker의 ValueChanged에서 앱이 충돌 함

쇼크 웨이버

UIAlertController를 인스턴스화하고 UITextField 중 하나에 입력 뷰로 UIDatePicker를 할당합니다. 또한 ValueChanged 이벤트 처리기를 선택기에 할당했습니다. UIDatePicker는 언급 된 UITextField가 포커스를받을 때 올바르게 표시되지만 날짜 값을 변경하면 앱이 충돌합니다.

아래 코드를 고려하십시오.

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 처리기가 있더라도 ValueChanged 이벤트에서 앱이 충돌합니다 picker.ValueChanged += (object sender, EventArgs e) => {};.

이벤트 핸들러를 추가하지 않으면 충돌이 없습니다!

이 코드는 버튼 TouchUpInside 이벤트 핸들러에 있습니다.

내가 어디에서 잘못하고 있습니까?

Krumelur

코드 샘플에서 이벤트 메서드를 혼동했다고 생각합니다. TouchUpInside피커를 위해 발사되지 않습니다. 새 날짜 값을 선택한 경우 텍스트보기의 내용을 업데이트하려면 다음을 사용해야합니다.

picker.ValueChanged += (pickerSender, pickerArgs) =>
{
        obj.Text = picker.Date.Description;
};

충돌을 방지하려면 UIDatePicker 인스턴스에 대한 참조를 유지해야합니다. 그렇지 않으면 너무 일찍 수집됩니다. 가장 쉬운 방법은 날짜 선택기를 클래스 범위로 이동하는 것입니다.

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    // Perform any additional setup after loading the view, typically from a nib.
    this.btnTest.TouchUpInside += HandleTouchUpInside;
}

UIDatePicker picker;

void HandleTouchUpInside (object sender, EventArgs e)
{
    var d = UIAlertController.Create( "Confirm", "Fill below with the required info.", UIAlertControllerStyle.Alert);

    d.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, ((UIAlertAction obj) => {})));
    d.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null));

    d.AddTextField((delegate(UITextField obj) {
        picker = new UIDatePicker ();
        picker.ValueChanged += (pickerSender, pickerArgs) =>
        {
            obj.Text = picker.Date.Description;
        };
        obj.InputView = picker;
    }));
    PresentViewController(d, true, null);
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UIAlertController의 UITextField에 대한 UIDatePicker의 ValueChanged에서 앱이 충돌 함

분류에서Dev

Slidingtablayout 내부의 SwipableRefreshLayout에서 앱이 충돌 함

분류에서Dev

c의 사용자 정의 함수에 대한 충돌 유형

분류에서Dev

Xamarin Forms Android 앱이 일부 장치의 릴리스에서 충돌 함

분류에서Dev

Android 10 장치의 std :: thread 소멸자에서 QT 앱이 충돌 함

분류에서Dev

.lib에서 .so로 전환 한 후 Android 앱이 충돌 함

분류에서Dev

UIAlertController에서 UITextField 사이의 거리

분류에서Dev

iOS의 특정 웹 서비스에 대한 앱 충돌 및 예외보고

분류에서Dev

맵의 플레이어 및 블록에 대한 충돌 감지

분류에서Dev

Microsoft Custom Translator에 대한 교육 데이터의 충돌

분류에서Dev

SIMULINK의 코드 생성 기호에 대한 이름 충돌

분류에서Dev

테스트 된 한 PC에 대해 시작시 WPF 앱이 충돌 함

분류에서Dev

Unity 4.3에서 2D 개체의 애니메이션에서 앱이 충돌 함

분류에서Dev

응용 프로그램 충돌, 함수에 대한 포인터가 의심 됨

분류에서Dev

viewDidAppear의 performSegue에서 앱 충돌

분류에서Dev

PreferenceFragment의 AlertDialog에서 앱 충돌

분류에서Dev

InfoWindow의 setText에서 앱 충돌

분류에서Dev

이미지를 서버 IOS7에 업로드 한 후 앱이 충돌 함

분류에서Dev

범위에 대한 값이 설정되면 Excel이 충돌 함

분류에서Dev

데이터베이스의 바인딩이있는 ComboBox에 대한 WPF SelectionChange 이벤트에서 프로그램이 충돌 함

분류에서Dev

애플리케이션이 CoreData에 의해 충돌 함

분류에서Dev

Android Studio : 스마트 폰에서 실행 한 후 앱이 충돌 함

분류에서Dev

localhost의 앱 엔진 std에 대한 devappserver.py가 os.uname을 지우고 ctypes에서 충돌합니다.

분류에서Dev

Apple LLVM에서 Qt 4.8.4 QList의 이상한 충돌

분류에서Dev

Swift에서 "UIAlertController의 ActionSheet에 충돌 제약 조건이 있습니다"오류를 수정하는 방법

분류에서Dev

Response.Redirect에 대한 Request.UrlReferrer가 홈 페이지에서 충돌 함

분류에서Dev

Android 4.x에서만 'NoClassDefFoundError'와 함께 앱이 충돌 함

분류에서Dev

<a>의 <img> 앱이 충돌 함 (Javascript Windows 8 앱)

분류에서Dev

동일한 클래스에 대한 FinalExams의 충돌

Related 관련 기사

  1. 1

    UIAlertController의 UITextField에 대한 UIDatePicker의 ValueChanged에서 앱이 충돌 함

  2. 2

    Slidingtablayout 내부의 SwipableRefreshLayout에서 앱이 충돌 함

  3. 3

    c의 사용자 정의 함수에 대한 충돌 유형

  4. 4

    Xamarin Forms Android 앱이 일부 장치의 릴리스에서 충돌 함

  5. 5

    Android 10 장치의 std :: thread 소멸자에서 QT 앱이 충돌 함

  6. 6

    .lib에서 .so로 전환 한 후 Android 앱이 충돌 함

  7. 7

    UIAlertController에서 UITextField 사이의 거리

  8. 8

    iOS의 특정 웹 서비스에 대한 앱 충돌 및 예외보고

  9. 9

    맵의 플레이어 및 블록에 대한 충돌 감지

  10. 10

    Microsoft Custom Translator에 대한 교육 데이터의 충돌

  11. 11

    SIMULINK의 코드 생성 기호에 대한 이름 충돌

  12. 12

    테스트 된 한 PC에 대해 시작시 WPF 앱이 충돌 함

  13. 13

    Unity 4.3에서 2D 개체의 애니메이션에서 앱이 충돌 함

  14. 14

    응용 프로그램 충돌, 함수에 대한 포인터가 의심 됨

  15. 15

    viewDidAppear의 performSegue에서 앱 충돌

  16. 16

    PreferenceFragment의 AlertDialog에서 앱 충돌

  17. 17

    InfoWindow의 setText에서 앱 충돌

  18. 18

    이미지를 서버 IOS7에 업로드 한 후 앱이 충돌 함

  19. 19

    범위에 대한 값이 설정되면 Excel이 충돌 함

  20. 20

    데이터베이스의 바인딩이있는 ComboBox에 대한 WPF SelectionChange 이벤트에서 프로그램이 충돌 함

  21. 21

    애플리케이션이 CoreData에 의해 충돌 함

  22. 22

    Android Studio : 스마트 폰에서 실행 한 후 앱이 충돌 함

  23. 23

    localhost의 앱 엔진 std에 대한 devappserver.py가 os.uname을 지우고 ctypes에서 충돌합니다.

  24. 24

    Apple LLVM에서 Qt 4.8.4 QList의 이상한 충돌

  25. 25

    Swift에서 "UIAlertController의 ActionSheet에 충돌 제약 조건이 있습니다"오류를 수정하는 방법

  26. 26

    Response.Redirect에 대한 Request.UrlReferrer가 홈 페이지에서 충돌 함

  27. 27

    Android 4.x에서만 'NoClassDefFoundError'와 함께 앱이 충돌 함

  28. 28

    <a>의 <img> 앱이 충돌 함 (Javascript Windows 8 앱)

  29. 29

    동일한 클래스에 대한 FinalExams의 충돌

뜨겁다태그

보관