{"id":1971,"date":"2013-10-22T20:15:00","date_gmt":"2013-10-22T18:15:00","guid":{"rendered":"http:\/\/www.albertopasca.it\/whiletrue\/?p=1971"},"modified":"2020-03-17T15:15:42","modified_gmt":"2020-03-17T14:15:42","slug":"objective-c-uistoryboard-segue-custom-transition","status":"publish","type":"post","link":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/","title":{"rendered":"Objective-C \u2013 UIStoryboard segue custom transition"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A\u00a0<strong>UIStoryboardSegue<\/strong>\u00a0object is responsible for performing the visual transition between two view controllers. In addition, segue objects are used to prepare for the transition from one view controller to another. Segue objects contain information about the view controllers involved in a transition. When a segue is triggered, but before the visual transition occurs, the storyboard runtime calls the current view controller\u2019s prepareForSegue:sender: method so that it can pass any needed data to the view controller that is about to be displayed.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Subclassing notes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can subclass\u00a0<strong>UIStoryboardSegue<\/strong>\u00a0in situations where you want to provide a\u00a0<em>custom transition between view controllers<\/em>\u00a0in your application. To use your custom segue, create a segue line between the appropriate view controllers in Interface Builder and set its type to Custom in the inspector; you must also specify the class name of the segue to use in the inspector.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ref: <a rel=\"noreferrer noopener\" aria-label=\"https:\/\/developer.apple.com\/library\/ios\/documentation\/uikit\/reference\/UIStoryboardS egue_Class\/Reference\/Reference.html (opens in a new tab)\" href=\"https:\/\/developer.apple.com\/library\/ios\/documentation\/uikit\/reference\/UIStoryboardS egue_Class\/Reference\/Reference.html\" target=\"_blank\">https:\/\/developer.apple.com\/library\/ios\/documentation\/uikit\/reference\/UIStoryboardS egue_Class\/Reference\/Reference.html<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"459\" src=\"https:\/\/i0.wp.com\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png?resize=680%2C459\" alt=\"\" class=\"wp-image-1974\" srcset=\"https:\/\/i0.wp.com\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png?w=680&amp;ssl=1 680w, https:\/\/i0.wp.com\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png?resize=300%2C203&amp;ssl=1 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Subclassing UIStoryboardSegue:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a\u00a0<em>subclass of UIStoryBoardSegue<\/em>\u00a0and override the\u00a0<strong>perform<\/strong>\u00a0<em>method<\/em>.<br>In the perform method, do your custom animation. Once the animation is complete, push or present your destination view controller.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\/\/<\/em>\n<em>\/\/ a simple UIStoryboardSegue subclass<\/em>\n<em>\/\/<\/em>\n@interface\u00a0APCustomSegue\u00a0:\u00a0UIStoryboardSegue\n@end\n\n@implementation\u00a0APCustomSegue\n\n<em>\/\/<\/em>\n<em>\/\/ method to override<\/em>\n<em>\/\/<\/em>\n-\u00a0(void)\u00a0perform\n{\n\u00a0 UIViewController\u00a0*src \u00a0=\u00a0(UIViewController\u00a0*)self.sourceViewController;\n\u00a0 UIViewController\u00a0*dest\u00a0=\u00a0(UIViewController\u00a0*)self.destinationViewController;\n\u00a0\n\u00a0 CGRect f\u00a0=\u00a0src.view.frame;\n\u00a0 CGRect originalSourceRect\u00a0=\u00a0src.view.frame;\n\u00a0 f.origin.y\u00a0=\u00a0f.size.height;\n\u00a0\n\u00a0\u00a0[UIView animateWithDuration:0.3\u00a0animations:^\n\u00a0\u00a0{\n\u00a0 \u00a0 \u00a0src.view.frame\u00a0=\u00a0f;\n\u00a0\u00a0}\u00a0completion:^(BOOL\u00a0finished){\n\u00a0 \u00a0 \u00a0src.view.alpha\u00a0=\u00a00;\n\u00a0 \u00a0 \u00a0dest.view.frame\u00a0=\u00a0f;\n\u00a0 \u00a0 \u00a0dest.view.alpha\u00a0=\u00a00.0f;\n\u00a0 \u00a0 \u00a0[[src.view superview]\u00a0addSubview:dest.view];\n\n\u00a0 \u00a0 \u00a0[UIView animateWithDuration:0.3\u00a0animations:^\n\u00a0 \u00a0 \u00a0{\n\u00a0dest.view.frame\u00a0=\u00a0originalSourceRect;\n\u00a0dest.view.alpha\u00a0=\u00a01.0f;\n\u00a0 \u00a0 \u00a0}\u00a0completion:^(BOOL\u00a0finished)\u00a0{\n\u00a0[dest.view removeFromSuperview];\n\u00a0src.view.alpha\u00a0=\u00a01.0f;\n\u00a0[src.navigationController pushViewController:dest animated:NO];\n\u00a0 \u00a0 \u00a0\u00a0}];\n\u00a0 \u00a0}];\n}\n\n@end<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your segue has now a custom animation. You can play now!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enjoy animating!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A\u00a0UIStoryboardSegue\u00a0object is responsible for performing the visual transition between two view controllers. In addition, segue objects are used to prepare for the transition from one view controller to another. Segue objects contain information about the view controllers involved in a transition. When a segue is triggered, but before the visual transition occurs, the storyboard runtime <a class=\"read-more\" href=\"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[41,167,848,130,847],"class_list":["post-1971","post","type-post","status-publish","format-standard","hentry","category-generic","tag-animation","tag-objectivec","tag-perform","tag-uistoryboard","tag-uistoryboardsegue"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Objective-C \u2013 UIStoryboard segue custom transition - while (true) {\u00a0}<\/title>\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.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Objective-C \u2013 UIStoryboard segue custom transition - while (true) {\u00a0}\" \/>\n<meta property=\"og:description\" content=\"A\u00a0UIStoryboardSegue\u00a0object is responsible for performing the visual transition between two view controllers. In addition, segue objects are used to prepare for the transition from one view controller to another. Segue objects contain information about the view controllers involved in a transition. When a segue is triggered, but before the visual transition occurs, the storyboard runtime Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/\" \/>\n<meta property=\"og:site_name\" content=\"while (true) {\u00a0}\" \/>\n<meta property=\"article:published_time\" content=\"2013-10-22T18:15:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-17T14:15:42+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png\" \/>\n<meta name=\"author\" content=\"Alberto Pasca\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@lupasca\" \/>\n<meta name=\"twitter:site\" content=\"@lupasca\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alberto Pasca\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/\"},\"author\":{\"name\":\"Alberto Pasca\",\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/#\\\/schema\\\/person\\\/d3cf0df774eb4aac797f246a795e9fac\"},\"headline\":\"Objective-C \u2013 UIStoryboard segue custom transition\",\"datePublished\":\"2013-10-22T18:15:00+00:00\",\"dateModified\":\"2020-03-17T14:15:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/\"},\"wordCount\":213,\"publisher\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/#\\\/schema\\\/person\\\/d3cf0df774eb4aac797f246a795e9fac\"},\"image\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Schermata-2013-10-21-alle-16.28.59.png\",\"keywords\":[\"animation\",\"objectivec\",\"perform\",\"UIStoryboard\",\"uistoryboardsegue\"],\"articleSection\":[\"generic\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/\",\"url\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/\",\"name\":\"Objective-C \u2013 UIStoryboard segue custom transition - while (true) {\u00a0}\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Schermata-2013-10-21-alle-16.28.59.png\",\"datePublished\":\"2013-10-22T18:15:00+00:00\",\"dateModified\":\"2020-03-17T14:15:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.albertopasca.it\\\/whiletrue\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Schermata-2013-10-21-alle-16.28.59.png?fit=680%2C459&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.albertopasca.it\\\/whiletrue\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Schermata-2013-10-21-alle-16.28.59.png?fit=680%2C459&ssl=1\",\"width\":680,\"height\":459},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/objective-c-uistoryboard-segue-custom-transition\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Objective-C \u2013 UIStoryboard segue custom transition\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/#website\",\"url\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/\",\"name\":\"while (true) {\u00a0}\",\"description\":\"notes from a developer, tutorials, how-to, ideas\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/#\\\/schema\\\/person\\\/d3cf0df774eb4aac797f246a795e9fac\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.albertopasca.it\\\/whiletrue\\\/#\\\/schema\\\/person\\\/d3cf0df774eb4aac797f246a795e9fac\",\"name\":\"Alberto Pasca\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g\",\"caption\":\"Alberto Pasca\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g\"},\"description\":\"Software engineer @ Pirelli &amp; C. S.p.A. with a strong passion for mobile \uf8ff development, security, and connected things.\",\"sameAs\":[\"https:\\\/\\\/www.albertopasca.it\",\"albertopasca\",\"https:\\\/\\\/x.com\\\/lupasca\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Objective-C \u2013 UIStoryboard segue custom transition - while (true) {\u00a0}","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.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/","og_locale":"en_US","og_type":"article","og_title":"Objective-C \u2013 UIStoryboard segue custom transition - while (true) {\u00a0}","og_description":"A\u00a0UIStoryboardSegue\u00a0object is responsible for performing the visual transition between two view controllers. In addition, segue objects are used to prepare for the transition from one view controller to another. Segue objects contain information about the view controllers involved in a transition. When a segue is triggered, but before the visual transition occurs, the storyboard runtime Read More","og_url":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/","og_site_name":"while (true) {\u00a0}","article_published_time":"2013-10-22T18:15:00+00:00","article_modified_time":"2020-03-17T14:15:42+00:00","og_image":[{"url":"http:\/\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png","type":"","width":"","height":""}],"author":"Alberto Pasca","twitter_card":"summary_large_image","twitter_creator":"@lupasca","twitter_site":"@lupasca","twitter_misc":{"Written by":"Alberto Pasca","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/#article","isPartOf":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/"},"author":{"name":"Alberto Pasca","@id":"https:\/\/www.albertopasca.it\/whiletrue\/#\/schema\/person\/d3cf0df774eb4aac797f246a795e9fac"},"headline":"Objective-C \u2013 UIStoryboard segue custom transition","datePublished":"2013-10-22T18:15:00+00:00","dateModified":"2020-03-17T14:15:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/"},"wordCount":213,"publisher":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/#\/schema\/person\/d3cf0df774eb4aac797f246a795e9fac"},"image":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/#primaryimage"},"thumbnailUrl":"http:\/\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png","keywords":["animation","objectivec","perform","UIStoryboard","uistoryboardsegue"],"articleSection":["generic"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/","url":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/","name":"Objective-C \u2013 UIStoryboard segue custom transition - while (true) {\u00a0}","isPartOf":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/#primaryimage"},"image":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/#primaryimage"},"thumbnailUrl":"http:\/\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png","datePublished":"2013-10-22T18:15:00+00:00","dateModified":"2020-03-17T14:15:42+00:00","breadcrumb":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/#primaryimage","url":"https:\/\/i0.wp.com\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png?fit=680%2C459&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.albertopasca.it\/whiletrue\/wp-content\/uploads\/2020\/03\/Schermata-2013-10-21-alle-16.28.59.png?fit=680%2C459&ssl=1","width":680,"height":459},{"@type":"BreadcrumbList","@id":"https:\/\/www.albertopasca.it\/whiletrue\/objective-c-uistoryboard-segue-custom-transition\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.albertopasca.it\/whiletrue\/"},{"@type":"ListItem","position":2,"name":"Objective-C \u2013 UIStoryboard segue custom transition"}]},{"@type":"WebSite","@id":"https:\/\/www.albertopasca.it\/whiletrue\/#website","url":"https:\/\/www.albertopasca.it\/whiletrue\/","name":"while (true) {\u00a0}","description":"notes from a developer, tutorials, how-to, ideas","publisher":{"@id":"https:\/\/www.albertopasca.it\/whiletrue\/#\/schema\/person\/d3cf0df774eb4aac797f246a795e9fac"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.albertopasca.it\/whiletrue\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.albertopasca.it\/whiletrue\/#\/schema\/person\/d3cf0df774eb4aac797f246a795e9fac","name":"Alberto Pasca","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g","caption":"Alberto Pasca"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/4d8fe43c412d0bb34a71c41f60dce53eff3afc027853cbfd20bee6ddc7e93f35?s=96&d=retro&r=g"},"description":"Software engineer @ Pirelli &amp; C. S.p.A. with a strong passion for mobile \uf8ff development, security, and connected things.","sameAs":["https:\/\/www.albertopasca.it","albertopasca","https:\/\/x.com\/lupasca"]}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/posts\/1971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/comments?post=1971"}],"version-history":[{"count":10,"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/posts\/1971\/revisions"}],"predecessor-version":[{"id":1982,"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/posts\/1971\/revisions\/1982"}],"wp:attachment":[{"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/media?parent=1971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/categories?post=1971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.albertopasca.it\/whiletrue\/wp-json\/wp\/v2\/tags?post=1971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}