首页 文章

呈现一个ViewController,将其关闭,然后进入另一个View

提问于
浏览
1

我正在尝试执行以下操作:

  • 用户按下按钮
    弹出

  • UIImagePickerController

  • 用户选择图像

  • UIImagePickerController 被驳回

  • 进入另一个ViewController

截至目前,我已经设置了当用户按下按钮时,初始化UIImagePickerController并使用presentViewController进行呈现 . 它也被委托给该按钮链接的类 . 用户选择图像后,将调用imagePickerController,并且还会调用 dismissViewControllerAnimated . 然后,调用 performSegueWithIdentifier . 但是,最后一步抛出以下警告,然后不会发出错误:

2016-09-15 03:45:44.870食品日记[9941:1540144]警告:尝试在窗口层次结构中显示其视图!

我是Swift和iOS开发的新手,这是什么意思,我该如何解决?

3 回答

  • 0

    完成 UIImagePickerController 的解雇后执行segue

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        // your code
        self.dismissViewControllerAnimated(true, completion: {
            self.performSegueWithIdentifier("SegueIdentifier", sender: self)
        })
    }
    

    Note: 使用发件人我已经传递了当前的Controller对象,您可以使用任何所需的对象 .

  • 4

    在演示和分析视图控制器时尝试使用这两行代码

    介绍:

    self.view.window.rootviewcontroller.presentViewController("yourVC",animated:true, nil)
    

    诋毁:

    self.view.window.rootViewController.dismissViewController(animated:true completion:nil)
    
  • 0

    它保持在同一个ViewController上,因为 UIImagePickerController 仍然在视图层次结构中,第二个ViewController无法添加到 UIImagePickerController 之上 . 要修复,你需要在完成 UIImagePickerCopntroller 解雇时包装你的segue,如下所示:

    self.dismiss(animated: true, completion: {
        self.performSegue(withIdentifier: "StartToMain", sender: nil)
    })
    

相关问题