presentViewController 是如何显示视图的?

How does presentViewController display the view?

我很好奇 presentViewController 对第一个参数 imagePickerController 做了什么。考虑到我分配 imagePickerController 属性的方式,presentViewController 会使用所有这些信息来显示视图吗?

@IBAction func imageFromPhotoLibrary(sender: UITapGestureRecognizer) {
    // Hide the keyboard.
    myTextField.resignFirstResponder()

    // UIImagePickerController is a view controller that lets a user pick media from their photo library.
    let imagePickerController = UIImagePickerController()

    // Only allow photos to be picked, not taken.
    imagePickerController.sourceType = .PhotoLibrary

    // Make sure ViewController is notified when the user picks an image.
    imagePickerController.delegate = self

    presentViewController(imagePickerController, animated: true, completion: nil)
}

presentViewController 不会使用任何选项。您传入的 imagePickerController 将使用这些选项。

由于 Apple API 设计得非常好,presentViewController 只做一件事 (SRP),并且完全按照它所说的去做...呈现视图控制器 你通过了

imagePickerController负责控制图像选择器的视图