title: UIImagePickerController crashes app | Swift3, Xcode8
body: <p><em>FYI: I´m new to Swift so this might be a really simple problem but I just can´t figure it out.</em></p>
  
  <p>I have been following the <a href="https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson4.html#//apple_ref/doc/uid/TP40015214-CH6-SW1">Start Developing iOS Apps (Swift)</a> tutorial using the Xcode 8 beta and Swift 3.</p>
  
  <p>I attached a Tap Gesture Recognizer to a Image View and then added this action in the ViewController.swift :</p>
  
  <pre><code>@IBAction func selectImageFromPhotoLibrary(_ sender: UITapGestureRecognizer) {
          // Hide the keyboard.
          nameTextField.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
  
          present(imagePickerController, animated: true, completion: nil)
      }
  </code></pre>
  
  <p>When the selectImageFromPhotLibrary Action is called by a tap on the Image View the app crashes without showing the ImagePicker.</p>
  
  <p>I guess that the problem is with the new <strong>present</strong> instead of <strong>presentViewController</strong> which was introduced in Swift 3</p>
  
  <p><hr>
  ViewController.swift</p>
  
  <pre><code>import UIKit
  
  class ViewController: UIViewController, UITextFieldDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
  
      // MARK: Properties
      @IBOutlet weak var mealNameLabel: UILabel!
      @IBOutlet weak var nameTextField: UITextField!
      @IBOutlet weak var photoImageView: UIImageView!
  
  
      override func viewDidLoad() {
          super.viewDidLoad()
          // Do any additional setup after loading the view, typically from a nib.
  
          //  Handle the text  field´s user input through delegate callbacks
          nameTextField.delegate = self
      }
  
      // MARK: UITextFieldDelegate
      func textFieldShouldReturn(_ textField: UITextField) -&gt; Bool {
          // Hide the keyboard.
          textField.resignFirstResponder()
          return true
      }
  
      func textFieldDidEndEditing(_ textField: UITextField) {
          mealNameLabel.text = textField.text
      }
  
      // MARK: UIImagePickerControllerDelegate
      func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
          // Dismiss the picker if the user canceled.
          dismiss(animated: true, completion: nil)
      }
  
      func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
          // The info dictionary contains multiple representations of the image, and this uses the original.
          let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage
  
          // Set photoImageView to display the selected image.
          photoImageView.image = selectedImage
  
          // Dismiss the picker.
          dismiss(animated: true, completion: nil)
      }
  
  
      // MARK: Actions
  
      @IBAction func selectImageFromPhotoLibrary(_ sender: UITapGestureRecognizer) {
          // Hide the keyboard.
          nameTextField.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
  
          present(imagePickerController, animated: true, completion: nil)
      }
  
      @IBAction func setDefaultLabelText(_ sender: UIButton) {
          mealNameLabel.text = "Default Text"
      }
  
  
  }
  </code></pre>
  
  <p><hr>
  Console Output</p>
  
  <pre><code>2016-06-20 17:08:20.568093 FoodTracker[33322:696094] bundleid: com.armin.FoodTracker, enable_level: 0, persist_level: 0, propagate_with_activity: 0
  2016-06-20 17:08:20.569458 FoodTracker[33322:696094] subsystem: com.apple.UIKit, category: HIDEvents, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  2016-06-20 17:08:20.604909 FoodTracker[33322:696090] Created DB, header sequence number = 288
  2016-06-20 17:08:20.668341 FoodTracker[33322:696090] Created DB, header sequence number = 288
  2016-06-20 17:08:20.743143 FoodTracker[33322:696090] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  2016-06-20 17:08:20.769881 FoodTracker[33322:696091] subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  2016-06-20 17:08:22.007665 FoodTracker[33322:695971] subsystem: com.apple.UIKit, category: Touch, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  2016-06-20 17:08:22.009799 FoodTracker[33322:695971] subsystem: com.apple.UIKit, category: Gesture, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  2016-06-20 17:08:22.012973 FoodTracker[33322:695971] subsystem: com.apple.UIKit, category: GestureEnvironment, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  2016-06-20 17:08:22.013820 FoodTracker[33322:695971] subsystem: com.apple.UIKit, category: GestureExclusion, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  2016-06-20 17:08:23.061815 FoodTracker[33322:695971] subsystem: com.apple.photos, category: Generic, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
  </code></pre>