{"id":2438,"date":"2017-02-08T12:13:01","date_gmt":"2017-02-08T06:43:01","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=2438"},"modified":"2017-02-09T13:14:01","modified_gmt":"2017-02-09T07:44:01","slug":"image-picker-controller-tutorial-ios","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/","title":{"rendered":"Image Picker Controller Tutorial iOS with Swift 3.0"},"content":{"rendered":"<p>In your iOS application there are many scenario when you have to let user select an image from photo library or capture an image using\u00a0Camera. In this post we will see how you can use\u00a0<strong>UIImagePickerController<\/strong> to let user capture an image or select it from photo album. Image Picker Controller is very easy and handy to pick an image.<\/p>\n<h2>Setting up the Info.plist<\/h2>\n<p>To access Camera or Photo Album you have to first make an entry in\u00a0<strong>Info.plist<\/strong> describing the reason why we need to access Camera or Photo Album.<\/p>\n<p>For\u00a0<strong>Camera\u00a0<\/strong>add\u00a0<strong>NSCameraUsageDescription<\/strong>\u00a0<span style=\"font-size: 1rem;\">key in\u00a0<\/span><strong style=\"font-size: 1rem;\">Info.plist<\/strong><span style=\"font-size: 1rem;\">:<\/span><\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Camera-Permission.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-2458 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Camera-Permission.png\" alt=\"Camera Permission\" width=\"674\" height=\"307\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Camera-Permission.png 674w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Camera-Permission-300x137.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Camera-Permission-624x284.png 624w\" sizes=\"(max-width: 674px) 100vw, 674px\" \/><\/a><\/p>\n<p>or you can use source code editor and add following code:<\/p>\n<div class=\"line number1 index0 alt2\">\n<div class=\"line number1 index0 alt2\">\n<pre class=\"lang:xhtml decode:true\">&lt;key&gt;NSCameraUsageDescription&lt;\/key&gt;\r\n&lt;string&gt;Allow us to use camera to capture the image&lt;\/string&gt;<\/pre>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p>To access\u00a0<strong>Photo Album\u00a0<\/strong>add\u00a0<strong>NSPhotoLibraryUsageDescription\u00a0<\/strong>key in <strong>Info.plist<\/strong><\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Photo-Permission.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2459\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Photo-Permission.png\" alt=\"Photo Permission\" width=\"711\" height=\"307\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Photo-Permission.png 711w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Photo-Permission-300x130.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Photo-Permission-624x269.png 624w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><\/a><\/p>\n<p>or you can use source code editor and add following code:<\/p>\n<div class=\"line number1 index0 alt2\">\n<div class=\"line number1 index0 alt2\">\n<pre class=\"lang:xhtml decode:true\">&lt;key&gt;NSPhotoLibraryUsageDescription&lt;\/key&gt;\r\n&lt;string&gt;Allow this permission to use photo album&lt;\/string&gt;\r\n<\/pre>\n<\/div>\n<\/div>\n<h2>Using UIImagePickerController<\/h2>\n<p>Let&#8217;s start by creating an object of Image Picker Controller and setting the source and delegate to UIImagePickerController.<\/p>\n<pre class=\"lang:swift decode:true\">let imagePicker = UIImagePickerController()\r\nimagePicker.sourceType = .camera\r\nimagePicker.allowsEditing = true\r\nimagePicker.delegate = self<\/pre>\n<p>Here, In line 1 we created an object of UIImagePickerController, and then set the sourceType to image picker object as Camera. There are three source type available which you can use for this property:<\/p>\n<ol>\n<li><span class=\"s1\">UIImagePickerControllerSourceType.<\/span><span class=\"s1\">photoLibrary<\/span><\/li>\n<li><span class=\"s1\">UIImagePickerControllerSourceType.<\/span>camera<\/li>\n<li>\n<p class=\"p1\"><span class=\"s1\"><span class=\"s1\"><span class=\"s1\">UIImagePickerControllerSourceType.<\/span><\/span><\/span>savedPhotosAlbum<\/p>\n<\/li>\n<\/ol>\n<p>The difference between photo library and saved photo album is that photo album gives access to all photos and albums available on the device and saved photos album gives access to only photos saved locally to your device and no access to album.<\/p>\n<p>The Allow editing option on line 3 is to tell image picker controller that image needs to be cropped if set true.<\/p>\n<p>The fourth line is for setting the delegate of image picker controller. We will implement the delegate later in the post.<\/p>\n<p>Before presenting the UIImagePickerController you may also check the availability of the source type by following code otherwise app will crash on simulator if you try to access Camera.<\/p>\n<pre class=\"lang:swift decode:true\">if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {\r\n}<\/pre>\n<p>Apple documentation indicates that the UIImagePickerController must be presented in pop over on iPad, So add the following code to present UIImagePickerController in pop over on iPad&#8217;s.<\/p>\n<pre class=\"lang:swift decode:true\">imagePicker.modalPresentationStyle = .popover\r\nimagePicker.popoverPresentationController?.delegate = self\r\nimagePicker.popoverPresentationController?.sourceView =\u00a0view<\/pre>\n<p>In the above code we state that the image picker to be present as pop over (Line 1). We also set an delegate to the UIPopoverPresentationController so that we can get callback when user dismiss the pop over by clicking outside of it, We will implement this delegate later in the post. In the last line we have set a source view of pop over, you can set it to the button or any view so that pop over can use it as a reference point as it needs an reference rectangle to pop out from.<\/p>\n<p>Now we just have to present the image picker controller.<\/p>\n<pre class=\"lang:swift decode:true\">present(imagePicker, animated: true, completion: nil)<\/pre>\n<p>If you wish you can set the alpha of current view controller&#8217;s view to some value (like 0.5) to add a overlay on the iPad.<\/p>\n<pre class=\"lang:swift decode:true \">view.alpha = 0.5<\/pre>\n<h2>Implementing\u00a0UIImagePickerControllerDelegate<\/h2>\n<p>Now let&#8217;s implement the delegate\u00a0<strong>UIImagePickerControllerDelegate<\/strong> to get the image captured from camera or picked from photo album. To implement this delegate you also need implement\u00a0<strong><span class=\"s1\">UINavigationControllerDelegate.<\/span><\/strong><\/p>\n<pre class=\"lang:swift decode:true\">extension ViewController : UINavigationControllerDelegate, UIImagePickerControllerDelegate {\r\n\r\n\u00a0 func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {\r\n\u00a0\u00a0 picker.dismiss(animated: true)\r\n\u00a0 }\r\n\r\n\u00a0 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {\r\n\u00a0\u00a0 if let editedImage = info[UIImagePickerControllerEditedImage] as? UIImage {\r\n\u00a0\u00a0\u00a0 \/\/ Use editedImage Here\r\n\u00a0\u00a0 } else if let originalImage = info[UIImagePickerControllerOriginalImage] as? UIImage {\r\n\u00a0\u00a0\u00a0 \/\/ Use originalImage Here\r\n\u00a0\u00a0 }\r\n\u00a0\u00a0 picker.dismiss(animated: true)\r\n\u00a0 }\r\n}<\/pre>\n<p>Here in each method we dismiss the image picker controller. The key\u00a0<strong>UIImagePickerControllerEditedImage\u00a0<\/strong>is used for getting the cropped image. it will return the image if the allowEditing property of UIImagePickerController was set to true. The key\u00a0<strong>UIImagePickerControllerOriginalImage\u00a0<\/strong>is used to get the original image captured or selected.<\/p>\n<p>If you have set the alpha of current view controller&#8217;s view then you must set it to\u00a0<strong>1.0\u00a0<\/strong>in both of these methods. In this case you also need to implement the\u00a0<strong><span class=\"s1\">UIPopoverPresentationControllerDelegate\u00a0<\/span><\/strong><span class=\"s1\">and reset the alpha of the view.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">extension ViewController: UIPopoverPresentationControllerDelegate {\r\n\u00a0 func popoverPresentationControllerDidDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) {\r\n\u00a0\u00a0 view.alpha = 1.0\r\n\u00a0 }\r\n}<\/pre>\n<h2>Check\u00a0Camera Permission<\/h2>\n<p>If you want to check the permission before presenting the UIImagePickerController you can use following code to determine the permission given by user and decide what to do.<\/p>\n<p>First you need to import the\u00a0<strong><span class=\"s1\">AVFoundation\u00a0<\/span><\/strong><span class=\"s1\">framework.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let cameraMediaType = AVMediaTypeVideo\r\nlet cameraAuthorizationStatus = AVCaptureDevice.authorizationStatus(forMediaType: cameraMediaType)\r\nswitch cameraAuthorizationStatus {\r\n\r\ncase .authorized:\r\n\u00a0 \/\/ Access is granted by user.\r\n\u00a0 break\r\n\r\ncase .notDetermined:\r\n\u00a0 \/\/\u00a0It is not determined until now.\r\n\u00a0 break\r\n\r\ncase .restricted:\r\n\u00a0 \/\/\u00a0User do not have access to camera.\r\n\u00a0 break\r\n\r\ncase .denied:\r\n\u00a0 \/\/ User has denied the permission.\r\n\u00a0 break\r\n}<\/pre>\n<h2>Check Photo Album\u00a0Permission<\/h2>\n<p>To check the photo album permission use following code.<\/p>\n<p>You have to import the framework <strong>Photos\u00a0<\/strong>for this to work.<\/p>\n<pre class=\"lang:swift decode:true\">let photoAuthorizationStatus = PHPhotoLibrary.authorizationStatus()\r\nswitch photoAuthorizationStatus {\r\n\r\ncase .authorized:\r\n\u00a0 \/\/ Access is granted by user.\r\n\u00a0 break\r\n\r\ncase .notDetermined:\r\n\u00a0 \/\/\u00a0It is not determined until now.\r\n\u00a0 break\r\n\r\ncase .restricted:\r\n\u00a0 \/\/\u00a0User do not have access to photo album.\r\n\u00a0 break\r\n\r\ncase .denied:\r\n\u00a0 \/\/ User has denied the permission.\r\n\u00a0 break\r\n}<\/pre>\n<p>That&#8217;s it. That&#8217;s all you have to do to use UIImagePickerController. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In your iOS application there are many scenario when you have to let user select an image from photo library or capture an image using\u00a0Camera. In this post we will see how you can use\u00a0UIImagePickerController to let user capture an image or select it from photo album. Image Picker Controller is very easy and handy [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2510,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,71,8],"tags":[160,122,89,183,178],"class_list":["post-2438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","category-mobile","category-mobile-architecture-and-design","tag-ios","tag-ipad","tag-iphone","tag-swift","tag-swift-3-0"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Image Picker Controller Tutorial iOS with Swift 3.0| InnovationM Blog<\/title>\n<meta name=\"description\" content=\"Image Picker Controller Tutorial in iOS with Swift 3.0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Image Picker Controller Tutorial iOS with Swift 3.0| InnovationM Blog\" \/>\n<meta property=\"og:description\" content=\"Image Picker Controller Tutorial in iOS with Swift 3.0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-08T06:43:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-02-09T07:44:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Image-Picker.png\" \/>\n\t<meta property=\"og:image:width\" content=\"902\" \/>\n\t<meta property=\"og:image:height\" content=\"501\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Image Picker Controller Tutorial iOS with Swift 3.0\",\"datePublished\":\"2017-02-08T06:43:01+00:00\",\"dateModified\":\"2017-02-09T07:44:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/\"},\"wordCount\":668,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Image-Picker.png\",\"keywords\":[\"iOS\",\"iPad\",\"iPhone\",\"Swift\",\"Swift 3.0\"],\"articleSection\":[\"iOS\",\"Mobile\",\"Mobile Architecture and Design\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/\",\"name\":\"Image Picker Controller Tutorial iOS with Swift 3.0| InnovationM Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Image-Picker.png\",\"datePublished\":\"2017-02-08T06:43:01+00:00\",\"dateModified\":\"2017-02-09T07:44:01+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"description\":\"Image Picker Controller Tutorial in iOS with Swift 3.0\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Image-Picker.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Image-Picker.png\",\"width\":902,\"height\":501},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/image-picker-controller-tutorial-ios\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Image Picker Controller Tutorial iOS with Swift 3.0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Image Picker Controller Tutorial iOS with Swift 3.0| InnovationM Blog","description":"Image Picker Controller Tutorial in iOS with Swift 3.0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/","og_locale":"en_US","og_type":"article","og_title":"Image Picker Controller Tutorial iOS with Swift 3.0| InnovationM Blog","og_description":"Image Picker Controller Tutorial in iOS with Swift 3.0","og_url":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/","og_site_name":"InnovationM - Blog","article_published_time":"2017-02-08T06:43:01+00:00","article_modified_time":"2017-02-09T07:44:01+00:00","og_image":[{"width":902,"height":501,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Image-Picker.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Image Picker Controller Tutorial iOS with Swift 3.0","datePublished":"2017-02-08T06:43:01+00:00","dateModified":"2017-02-09T07:44:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/"},"wordCount":668,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Image-Picker.png","keywords":["iOS","iPad","iPhone","Swift","Swift 3.0"],"articleSection":["iOS","Mobile","Mobile Architecture and Design"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/","url":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/","name":"Image Picker Controller Tutorial iOS with Swift 3.0| InnovationM Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Image-Picker.png","datePublished":"2017-02-08T06:43:01+00:00","dateModified":"2017-02-09T07:44:01+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"description":"Image Picker Controller Tutorial in iOS with Swift 3.0","breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Image-Picker.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Image-Picker.png","width":902,"height":501},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/image-picker-controller-tutorial-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Image Picker Controller Tutorial iOS with Swift 3.0"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=2438"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2438\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/2510"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=2438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=2438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=2438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}