Application tried to present modally an active controller.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Application tried to present modally an active controller.

    Hallo,

    ich würde gerne einen ImagePickerController aus meinem ViewController heraus anzeigen.


    Quellcode

    1. @interface ViewController () <UINavigationControllerDelegate, UIImagePickerControllerDelegate> {
    2. UIImagePickerController *imagePickerController;
    3. UIButton *showPickerBtn;
    4. }
    5. @end
    6. @implementation ViewController
    7. - (void)viewDidLoad
    8. {
    9. [super viewDidLoad];
    10. imagePickerController = [[UIImagePickerController alloc] init];
    11. imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
    12. imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    13. imagePickerController.delegate = self;
    14. imagePickerController.showsCameraControls = YES;
    15. showPickerBtn = [[UIButton alloc] initWithFrame:CGRectMake(20, 20, self.view.frame.size.width - 40, 50)];
    16. [showPickerBtn addTarget:self action:@selector(showPicker) forControlEvents:UIControlEventAllTouchEvents];
    17. [showPickerBtn setTintColor:[UIColor blueColor]];
    18. [showPickerBtn setTitle:@"Show" forState:UIControlStateNormal];
    19. [self.view addSubview:showPickerBtn];
    20. [self.view setBackgroundColor:[UIColor blueColor]];
    21. }
    22. - (void)showPicker
    23. {
    24. [self presentViewController:imagePickerController animated:YES completion:nil];
    25. }
    26. - (void)didReceiveMemoryWarning
    27. {
    28. [super didReceiveMemoryWarning];
    29. // Dispose of any resources that can be recreated.
    30. }
    31. @end
    Alles anzeigen


    Leider bekomme ich dann in der Konsole die folgenden Ausgaben:

    Quellcode

    1. 2013-07-31 20:52:27.792 CaptureText[1478:60b] Warning: Attempt to dismiss from view controller <ViewController: 0x17e5e2d0> while a presentation or dismiss is in progress!
    2. 2013-07-31 20:52:27.802 CaptureText[1478:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <ViewController: 0x17e5e2d0>.'
    3. *** First throw call stack:
    4. (0x2ebae10b 0x38d0c6c7 0x312eb3f7 0xcd897 0x312ea3db 0x312ea377 0x312ea34b 0x31426733 0x3142628d 0x312296dd 0x31228efd 0x31217ac9 0x313bc20f 0x312945af 0x31294355 0x313b599b 0x2eb76557 0x2eb75a1f 0x2eb741ff 0x2eaea6e9 0x2eaea4cb 0x3370c35b 0x3125e355 0xcee85 0x39221ab7)
    5. libc++abi.dylib: terminating with uncaught exception of type NSException


    Weißt da jemand rat zur Lösung?

    Danke
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • wenn ich den ViewCOntroller (der einen weiteren VC Modal anzeigen soll) aus meinen UINavigationController rausnehme, dann kann ich ganz normal den ModalVC anzeigen, nur im NavigationController wirft er die Warning

    EDIT:
    hab den VC wieder im NavigationCOntroller drin und jetzt kommt die warnin nicht mehr.
    Ein und auskommentieren hat das nun gefixt? Seltsam

    vielleicht sollte ich doch mal wochenende machen
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • ich mach den Aufruf des ModalVIewCOntroller in der viewDidAppear
    du setzt die Methode die den ModalViewController aufrufst als Target in der Init

    versuch mal die Zeile im viewDidAppear aufzurufen

    Quellcode

    1. [self presentViewController:imagePickerController animated:YES completion:nil];


    ich glaub das hat mit dem Zeitpunkt zu tun wann das hinzugefügt wird und ich glaub die Init ist zu früh
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • nussratte schrieb:

    ich mach den Aufruf des ModalVIewCOntroller in der viewDidAppear
    du setzt die Methode die den ModalViewController aufrufst als Target in der Init

    versuch mal die Zeile im viewDidAppear aufzurufen

    Quellcode

    1. [self presentViewController:imagePickerController animated:YES completion:nil];


    ich glaub das hat mit dem Zeitpunkt zu tun wann das hinzugefügt wird und ich glaub die Init ist zu früh



    Aber ich öffne Meinen ModalController (den ImagePicker) ja im Button event...
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io