{"id":275873,"date":"2016-03-10T17:16:03","date_gmt":"2016-03-10T14:16:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=275873"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=275873","title":{"rendered":"\u0410\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0435 Split View Controller \u0438 Popover \u0432 iOS 9 (Swift). \u0427\u0430\u0441\u0442\u044c 1"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/dfa\/ad6\/aaf\/dfaad6aaf7d745139434deab957f1f87.png\"\/><\/p>\n<p>  \u0421 \u043d\u0435\u0437\u0430\u043f\u0430\u043c\u044f\u0442\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d <b>Split View Controller<\/b> \u0438 <b>Popover<\/b> \u0432 iOS \u0431\u044b\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 iPad.<br \/>   \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 iOS 8, \u043e\u043d\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043d\u0430 iPad, \u0438 \u043d\u0430 iPhone, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 <b>Size Classes<\/b> \u0438 \u0438\u0445 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e. \u041e\u0434\u043d\u0430\u043a\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f Apple \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043e\u0432 <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code> \u0438 <code><font color=\"#0000FF\">UIPopoverPresentationControllerDelegate<\/font><\/code>. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 <b>Split View Controller<\/b> \u0438 <b>Popover <\/b> \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c <a href=\"https:\/\/www.flickr.com\">Flickr.com<\/a>, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c \u0441\u043e\u0431\u043e\u0439 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. \u0421\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b, \u0442\u0430\u043a \u043a\u0430\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u0442\u0435\u043c \u0432\u0432\u0438\u0434\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u201c\u0432\u0436\u0438\u0432\u0443\u044e\u201d \u0442\u0430\u043a\u0438\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 Swift, \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 c <code><font color=\"#0000FF\">{get}<\/font><\/code> \u0438 <code><font color=\"#0000FF\">{set}<\/font><\/code>, \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 <code><font color=\"#0000FF\">didSet{}<\/font><\/code>, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 <code><font color=\"#0000FF\">map, flatMap, filter<\/font><\/code>, \u0432\u044b\u0432\u043e\u0434 \u0442\u0438\u043f\u0430 \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0443 (overload) \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Swift \u0438 Objective-C \u043a\u043e\u0434\u0430, \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 <code><font color=\"#0000FF\">struct<\/font><\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 <code><font color=\"#0000FF\">NSUserDefaults<\/font><\/code> \u0438 \u0442.\u0434. \u041d\u043e \u0432\u0441\u0435 \u0436\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u043a\u0446\u0435\u043d\u0442 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445 <b>Split View Controller<\/b> \u0438 <b>Popover<\/b>.<br \/>   \u0412\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0432\u0441\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u0445\u043e\u0436\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043d\u043e\u0432\u043e\u0439 \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u0438 iOS, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 (UI) \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f \u043f\u0440\u0438\u0431\u043e\u0440\u0430 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u0439 <b>Size Class<\/b> \u0438\u043c\u0435\u0435\u0442 \u0435\u0433\u043e \u044d\u043a\u0440\u0430\u043d.<br \/>  \u0414\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432 \u0432 iOS 8 \u0431\u044b\u043b\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435<b> Size Class<\/b>. \u0412\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435 <b>Size Classes<\/b>:  <\/p>\n<ul>\n<li>Horizontal Regular<\/li>\n<li>Horizontal Compact<\/li>\n<li>Vertical Regular<\/li>\n<li>Vertical Compact<\/li>\n<\/ul>\n<p>  \u0412\u0430\u0448 <code>View Controller<\/code> ( <b>Split View Controller<\/b> \u0438\u043b\u0438 <b>Popover <\/b>) \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0441\u0440\u0435\u0434\u0435<b> Size \u0421lass<\/b> \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u043e\u0439 (width) \u0438 \u0432\u044b\u0441\u043e\u0442\u043e\u0439 ( height). \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 <b>Size Class<\/b> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u0438\u0431\u043e <b>Compact<\/b>, \u043b\u0438\u0431\u043e <b>Regular<\/b>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/392\/e55\/5d2\/392e555d2a3141d080d15eacd3aeba04.png\" width=\"420\" height=\"420\"\/><\/p>\n<p>  \u041f\u043e\u043b\u043d\u043e\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u0435 <b>View Controllers<\/b> \u043d\u0430 iPad \u0432\u0441\u0435\u0433\u0434\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <b>Regular<\/b> \u043f\u043e \u043e\u0431\u043e\u0438\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c (\u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443). \u041d\u0430 \u0432\u0441\u0435\u0445 iPhones \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c iPhone 6+ \u0438 iPhone 6s+, \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b <b>Compact<\/b> (\u0438 \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c, \u0438 \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0430\u0445), \u0430 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u044b\u043b <b>Regular<\/b> \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0438 <b>Compact<\/b> \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0421 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0445 iPhones 6+ \u0438 iPhones 6s+ \u0443 \u043d\u0438\u0445, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 iPhones, \u0448\u0438\u0440\u0438\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 <b>Regular<\/b> \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0447\u0442\u043e \u0438 \u0434\u0430\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e <b>Split View Controller<\/b> \u043d\u0430 iPhones 6+ \u0438 iPhones 6s+ \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<br \/>  \u0411\u0443\u0434\u0435\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u0435\u0441\u043b\u0438 \u044f \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0443 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 4-\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 Xcode 7 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d <b>Size Class<\/b>, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 Any (w<b>Any<\/b> h<b>Any<\/b>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ffe\/dd0\/194\/ffedd0194998480f850ea631ef727983.png\" width=\"500\" height=\"310\"\/><\/p>\n<p>  \u0412 iOS 7 \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u0430\u0445 <b>Controllers<\/b> (\u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b storyboards \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <a href=\"https:\/\/github.com\/BestKora\/Photomania-URL-Universal\">Photomania Universal URL<\/a> \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 CS193P \u041e\u0441\u0435\u043d\u044c 2013 \u2014 \u0417\u0438\u043c\u0430 2014\u0433. <a href=\"https:\/\/itunes.apple.com\/us\/course\/developing-ios-7-apps-for\/id733644550\">\u201cDeveloping iOS 7 Apps for iPhone and iPad\u201d<\/a>):<br \/>  <b>Split View Controller <\/b>\u043d\u0430 iPad<br \/>  Main_iPad.storyboard<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4ee\/e25\/1ac\/4eee251ac38b481bb6c90c9c59540505.png\" width=\"900\" height=\"584\"\/><\/p>\n<p>  <b>Navigation Controller <\/b>\u043d\u0430 iPhone<br \/>  Main_iPhone.storyboard<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/245\/2b7\/606\/2452b760606e4b36ae9a6557255ebc67.png\"\/><\/p>\n<p>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/github.com\/BestKora\/Photomania-URL-Universal\">Photomania Universal URL<\/a> \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u201c\u0441\u0432\u0435\u0436\u0438\u0445\u201d \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u0445, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432, \u0441\u0434\u0435\u043b\u0430\u0432\u0448\u0438\u0445 \u044d\u0442\u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u0432\u0430\u043c. E\u0441\u043b\u0438 \u0432\u044b \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u043d\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0435, \u0442\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0445 \u0438\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. \u0417\u0430\u0442\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0442\u0430\u043a \u0438 <b>URL<\/b> \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<br \/>  \u0412\u043e\u0442 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044d\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 <b>Compact-width <\/b>\u043f\u0440\u0438\u0431\u043e\u0440\u0430\u043c\u0438:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a10\/36a\/4e2\/a1036a4e2c464ff0856df72b33993cba.png\" width=\"900\" height=\"446\"\/><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441<b> Regular-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u0430\u043c\u0438:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b7b\/b5b\/e2f\/b7bb5be2f9184337b1f55dfc7b753dd0.png\" width=\"900\" height=\"324\"\/><\/p>\n<p>  \u042d\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 (background) \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u043e \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0438 \u0437\u0430\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 <b>Core Data<\/b>. \u0421\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0434\u043b\u044f iOS 7 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 Objective-C. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0435\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u043b\u0430 \u0432 \u0441\u0435\u0431\u044f \u0434\u0432\u0435 storyboards: \u043e\u0434\u043d\u0430 \u2014 \u0434\u043b\u044f iPhone, \u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u2014 \u0434\u043b\u044f iPad (\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432\u044b\u0448\u0435). \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u0435\u0449\u0435\u0439, \u0438 \u043d\u0438 \u043e \u043a\u0430\u043a\u043e\u043c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 Autolayout, \u0440\u0435\u0447\u044c \u043d\u0435 \u0448\u043b\u0430.<br \/>  \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043b\u044f iOS 7 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/github.com\/BestKora\/Photomania-URL-Universal\">Photomania Universal URL<\/a> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 <u>\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e<\/u> \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u0431\u043e\u0440\u0430\u0445 \u0432 iOS 9: \u043d\u0430 iPhone 5s \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445 iPhones \u0441\u043d\u0438\u0437\u0443 \u0438 \u0441\u0432\u0435\u0440\u0445\u0443 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u043d\u044b\u0435 \u043f\u043e\u043b\u043e\u0441\u044b. <br \/>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 UI \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iOS 9 \u043d\u0430 Swift. \u041e\u043d\u0430 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 <b>Split View Controller<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 iOS 8 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u043c. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 <b>Split View Controller<\/b> \u043c\u043e\u0436\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u043c\u0438: \u0434\u043b\u044f iPhone \u0438 \u0434\u043b\u044f iPad.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432 iOS 9 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b storyboard \u0441 <b> Split View Controller<\/b>, \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0418\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435 \u0424\u0430\u0439\u043b\u0430 \u0440\u0435\u0436\u0438\u043c <b>Size Class<\/b> \u0438 <b>Auto Layout<\/b><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f90\/d02\/173\/f90d0217369b4d1f8bfab8aedfe2fd48.png\" width=\"600\" height=\"460\"\/><\/p>\n<p>  \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 <b>segue<\/b> \u0442\u0438\u043f\u0430<b> Show Detail<\/b>:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0f7\/cdb\/db8\/0f7cdbdb898f4814853db102ef9159c1.png\" width=\"800\" height=\"428\"\/><\/p>\n<p>  \u0410\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0430\u044f storyboard \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 storyboard \u0434\u043b\u044f iPad \u0432 iOS 7, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0434\u0432\u0443\u0445 \u0432\u0435\u0449\u0435\u0439:  <\/p>\n<ul>\n<li>\u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0432\u0441\u0435\u0445 \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0445 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432 Xcode \u043a\u043b\u0430\u0441\u0441\u0443 w<b>Any<\/b> h<b>Any<\/b>,<\/li>\n<li>\u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 <b>segue<\/b> \u0442\u0438\u043f\u0430 <b>Show Detai<\/b>l, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 <b>Split View Controller<\/b> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: \u201c\u0441\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435\u201d \u043f\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0441\u0442\u044d\u043a\u0430 \u0432 <b>Navigation Controller<\/b>, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0434\u043b\u044f iPhone, \u0438 \u00ab\u043f\u0435\u0440\u0435\u0435\u0437\u0434\u00bb \u043a <b>Detail<\/b>, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0432 Split View Controller \u0434\u043b\u044f iPad. (\u0420\u0430\u043d\u044c\u0448\u0435 \u043d\u0430 iPad \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e <b>segue<\/b>)<\/li>\n<\/ul>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b> \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u0431\u043e\u0440\u0430\u0445, \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u0442\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u0445\u043e\u0434\u044f\u0442 \u0432 <b>Master<\/b> \u0438 <b>Detail<\/b>. \u041c\u044b \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c \u043f\u044f\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e <b>Master<\/b>, \u0430 <b>Detail<\/b> \u0432\u0435\u0437\u0434\u0435 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code>, \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 <b>Navigation Controller<\/b> \u0438 \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438:<\/p>\n<p>  1. \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 <b>Master<\/b>, \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 <b>Navigation Controller<\/b>, (\u0447\u0430\u0441\u0442\u043e \u044d\u0442\u043e <b>Table View Controller<\/b>) \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <i>AdaptiveSplitViewController1Swift<\/i> \u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a>.<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/afa\/28b\/ff6\/afa28bff63e84e66b5160cd7e7e23374.png\" width=\"600\" height=\"419\"\/><\/p>\n<p>  2. \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e <b>Table View Controller<\/b> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 <b>Navigation Controller<\/b> \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <u>AdaptiveSplitViewController2Swift <\/u>\u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a>.<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0ca\/20b\/2d0\/0ca20b2d060c41129f36637919fb813c.png\" width=\"800\" height=\"428\"\/><\/p>\n<p>  3. <b>Tab Bar Controller<\/b> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <b>Master<\/b> \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <i>AdaptiveSplitViewController3Swift <\/i> \u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a>.<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fcc\/4f7\/e03\/fcc4f7e037364ca199ccdad6b0870097.png\" width=\"800\" height=\"592\"\/><\/p>\n<p>  4. \u0421\u043b\u0443\u0447\u0430\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 UI \u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 <b>Size Classes <\/b>\u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u0438\u0434\u0435\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432<a href=\"http:\/\/bestkora.com\/IosDeveloper\/dopolnenie_\/\"> \u201c\u0410\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u0434\u0432\u0443\u043c\u044f storyboards \u0434\u043b\u044f iOS 9\u201d<\/a>.<\/p>\n<p>  5. \u0410\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 <b>Popover<\/b> \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <i>AdaptiveSplitViewController4Swift <\/i> \u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a>.<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/45a\/d8a\/554\/45ad8a554f9c441a9577f2bd3e940dd4.png\" width=\"800\" height=\"427\"\/><\/p>\n<p>  \u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043f\u0440\u0430\u0432\u043e\u043a, \u0435\u0441\u043b\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0441 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <a href=\"https:\/\/github.com\/BestKora\/Photomania-Split-Popover-Swift\">Photomania Universal URL<\/a> c \u201c\u043f\u043e\u0434\u043a\u0430\u0447\u043a\u043e\u0439\u201d <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0432 <b>Core Data<\/b>, \u0430 \u0441 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c \u0441 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u043c\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a>. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u044d\u0442\u0438\u0445 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u0445 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u201c\u0447\u0438\u0441\u0442\u043e\u0433\u043e \u043b\u0438\u0441\u0442\u0430\u201d \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u201c\u0443\u0431\u0438\u0442\u044c \u0434\u0432\u0443\u0445 \u0437\u0430\u0439\u0446\u0435\u0432\u201d. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 Swift. \u0410, \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445 <b>Split View Controller<\/b> \u0438 <b>Popover<\/b>.<\/p>\n<h2>\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Swift, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e AdaptiveSplitViewController1Swift \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d <b>Single View Application<\/b> ( \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d, \u0430 \u043d\u0435 <b>Master-Detail Application<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/521\/98c\/f86\/52198cf867de42c6a3b2d8593ef56649.png\"\/><br \/>  \u0411\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u00ab\u0447\u0438\u0441\u0442\u043e\u0433\u043e \u043b\u0438\u0441\u0442\u0430\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0431\u0435\u0440\u0435\u043c \u0441\u043e storyboard \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 <b>View Controller<\/b> \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u043c storyboard \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043f\u0443\u0441\u0442\u043e\u0439. \u0423\u0434\u0430\u043b\u0438\u043c \u0442\u0430\u043a\u0436\u0435 \u0444\u0430\u0439\u043b ViewController.swift.<br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u0430 storyboard \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u043e\u043f\u0446\u0438\u0438 <b>Size Class<\/b> \u0438 <b>Auto Layout<\/b>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/80f\/f1a\/037\/80ff1a03730f4f52863d1c43cb406b10.png\" width=\"800\" height=\"273\"\/><br \/>  \u041f\u0435\u0440\u0435\u0442\u044f\u043d\u0435\u043c \u0438\u0437 \u043f\u0430\u043b\u0438\u0442\u0440\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 storyboard <b>Table View Controller<\/b> \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 Flickr \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 <b>View Controller<\/b> \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 <b>URL<\/b> \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u041c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u0435\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f <b>Image View Controller<\/b>. <br \/>  \u0412\u0441\u0442\u0430\u0432\u0438\u043c <b>Table View Controller<\/b> \u0432 <b>Navigation Controller<\/b><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/69a\/e91\/019\/69ae91019266452191e3b42556d62373.png\" width=\"800\" height=\"267\"\/> <\/p>\n<p>  \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 <b>Table View Controller<\/b> \u0438 <b>Image View Controller <\/b>\u043e\u0431\u044b\u0447\u043d\u044b\u043c <b>Show segue<\/b> c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u201cShow Photo\u201d:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5c6\/f99\/0fa\/5c6f990fa10b4aa7b0c46f11af4b766a.png\" width=\"800\" height=\"307\"\/><\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <b>Navigation Controller<\/b> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/602\/547\/579\/6025475796c74f1bb8a096f6b1aee96b.png\" width=\"800\" height=\"307\"\/><\/p>\n<p>  \u0412 <b>Table View Controller<\/b> \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u0442\u0438\u043b\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u043a\u0430\u043a <b>Subtitle<\/b> \u0438 \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 <code><font color=\"#0000FF\">photoCell<\/font><\/code> \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 <br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/817\/534\/3fd\/8175343fd48741a58ff5f9a10cf25dea.png\" width=\"800\" height=\"130\"\/><\/p>\n<p>  \u0414\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\"> FlickrPhotosTVC<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442 <code><font color=\"#0000FF\">UITableViewController<\/font><\/code> \u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u043e\u043a\u0430\u0437\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 <code><font color=\"#0000FF\">Photo<\/font><\/code>:<\/p>\n<p>  <u><i>FlickrPhotosTVC.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/381\/247\/962\/381247962a3441a6a8b4f8748a35049d.png\" width=\"700\" height=\"126\"\/><\/p>\n<p>  \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code><font color=\"#0000FF\">Photo<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043c \u0432 \u0444\u0430\u0439\u043b\u0435 <i><u> DataModel.swift<\/u><\/i>, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 <code><font color=\"#0000FF\"> title<\/font><\/code>, \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 <code><font color=\"#0000FF\">subtitle<\/font><\/code>, \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 <code><font color=\"#0000FF\">unique<\/font><\/code>, URL \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code><font color=\"#0000FF\">imageURL<\/font><\/code>, \u0441\u0434\u0435\u043b\u0430\u0432\u0448\u0435\u0433\u043e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0430 <code><font color=\"#0000FF\">photographer<\/font><\/code>: <\/p>\n<p>  <u><i>DataModel.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/637\/c71\/772\/637c71772380455c87a6730599243e40.png\" width=\"700\" height=\"139\"\/><\/p>\n<p>  \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code><font color=\"#0000FF\">struct Photo<\/font><\/code> \u0438\u043c\u0435\u0435\u0442 <code><font color=\"#0000FF\">convenience<\/font><\/code> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440<code><font color=\"#0000FF\"> init?(json:[String:AnyObject])<\/font><\/code>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 <b>JSON<\/b> \u0434\u0430\u043d\u043d\u044be, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f <code><font color=\"#0000FF\">[String:AnyObject]<\/font><\/code>. \u042d\u0442\u043e <code><font color=\"#0000FF\">Optional<\/font><\/code> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 \u0437\u043d\u0430\u043a <code><font color=\"#0000FF\">?<\/font><\/code> \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0432 \u0438\u043c\u0435\u043d\u0438 <code><font color=\"#0000FF\">init?<\/font><\/code>:<\/p>\n<p>  <u><i>DataModel.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8b5\/39c\/990\/8b539c990b664b0485009995a12c2907.png\" width=\"750\" height=\"272\"\/><br \/>  \u0415\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code><font color=\"#0000FF\">Photo<\/font><\/code>. \u0415\u0441\u043b\u0438 \u0443 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043d\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 <code><font color=\"#0000FF\">subtitle<\/font><\/code> \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043a\u0430\u043a <code><font color=\"#0000FF\">title<\/font><\/code>. \u0415\u0441\u043b\u0438 \u0443 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043d\u0435\u0442 \u043d\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 <code><font color=\"#0000FF\">title<\/font><\/code>, \u043d\u0438 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f <code><font color=\"#0000FF\">subtitle<\/font><\/code>, \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u201cUnknown\u201d \u043a\u0430\u043a <code><font color=\"#0000FF\">title<\/font><\/code>. \u041a\u043b\u044e\u0447\u0438 <code><font color=\"#298A08\">FLICKR_PHOTO_TITLE, FLICKR_PHOTO_ID, FLICKR_PHOTO_DESCRIPTION<\/font><\/code> \u0438 <code><font color=\"#298A08\">FLICKR_PHOTO_OWNER<\/font><\/code> \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e Flickr \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 <u><i>FlickrFetcher.h<\/i><\/u>, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u043c <b>public API<\/b> \u0434\u043b\u044f <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> (\u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0437\u0436\u0435). <\/p>\n<p>  \u041c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 <code><font color=\"#0000FF\"> var photos = [Photo]<\/font><\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <b>\u041c<\/b>\u043e\u0434\u0435\u043b\u044c\u044e \u0434\u043b\u044f<b> MVC<\/b> <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code> \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 <code><font color=\"#0000FF\">UITableViewDataSource<\/font><\/code>:<\/p>\n<p>  <u><i>FlickrPhotosTVC.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/98d\/eec\/4bb\/98deec4bb1b84583b7696cd1a18eac39.png\" width=\"700\" height=\"273\"\/><\/p>\n<p>  \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u201c\u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0435\u201d \u043d\u0430 <b>Image View Controller<\/b> \u0432 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0447\u0442\u043e <b>\u041c<\/b>\u043e\u0434\u0435\u043b\u044c\u044e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code><font color=\"#0000FF\">var imageURL: NSURL?<\/font><\/code>, \u0437\u0430\u0434\u0430\u044e\u0449\u0435\u0435 <b>URL<\/b> \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438. \u0414\u0435\u043b\u0430\u0435\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e <b>segue<\/b> \u0442\u0438\u043f\u0430 <b>Show Detail<\/b> \u0432 \u043a\u043e\u0434\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code> \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0443\u0447\u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 <b>Navigation Controller<\/b>, \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e <b>Image View Controller<\/b>, \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u043c\u0435\u044e\u0449\u0443\u044e\u0441\u044f \u0443 <b>Split View Controller<\/b> \u043a\u043d\u043e\u043f\u043a\u0443 <code><font color=\"#0000FF\">displayModeButtonItem<\/font><\/code> \u043d\u0430 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c (\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435):<\/p>\n<p>  <u><i>FlickrPhotosTVC.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8f9\/8cc\/c97\/8f98ccc9770947ee8b3d4bcc8b083cba.png\" width=\"730\" height=\"349\"\/><br \/>  \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0434\u043b\u044f storyboard \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0432 <code><font color=\"#0000FF\">privater<\/font><\/code> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <code><font color=\"#0000FF\">Storyboard<\/font><\/code>:<\/p>\n<p>  <u><i>FlickrPhotosTVC.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0f1\/0f8\/148\/0f10f8148a124839bf4b892ad6aff768.png\" width=\"700\" height=\"78\"\/><\/p>\n<p>  C\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code> \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u043e\u0449\u0435\u043d\u043d\u044b\u043c (generic), \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c <code><font color=\"#0000FF\"> [Photo]<\/font><\/code> \u0438 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <b>MVC<\/b> <code><font color=\"#0000FF\">ImageViewController<\/font><\/code>. \u041d\u043e \u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <code><font color=\"#0000FF\">[Photo]<\/font><\/code>: c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u0438\u043b\u0438 \u0438\u0437 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 <code><font color=\"#0000FF\">NSUserDefaults<\/font><\/code>. <br \/>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.flickr.com\">Flickr.com<\/a> \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">JustPostedFlickrPhotosTVC<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <b>subclass<\/b> \u043a\u043b\u0430\u0441\u0441\u0430 <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code>:<\/p>\n<p>  <u><i>JustPostedFlickrPhotosTVC.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ccd\/1d8\/b04\/ccd1d8b0491c451db717c7083b052bfc.png\" width=\"650\" height=\"130\"\/><br \/>  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0435 c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code><font color=\"#0000FF\">JustPostedFlickrPhotosTVC<\/font><\/code> c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <b>public API<\/b> \u0434\u043b\u044f <a href=\"https:\/\/www.flickr.com\">Flickr<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d<b> <a href=\"http:\/\/web.stanford.edu\/class\/cs193p\/cgi-bin\/drupal\/downloads-2013-fall\">\u0441\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u043c \u0441\u0430\u0439\u0442\u043e\u043c<\/a> <\/b>\u0432 \u0432\u0438\u0434\u0435 \u043f\u0430\u043f\u043a\u0438 <u><i>Flickr Fetcher<\/i><\/u>. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <b>URL<\/b>s \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a <a href=\"https:\/\/www.flickr.com\">Flickr<\/a>, \u043a\u043e\u0434 \u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Objective-C. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c Objective-C \u043a\u043e\u0434 \u0432 Swift \u043f\u0440\u043e\u0435\u043a\u0442 \u044d\u0442\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 <u><i>Flickr Fetcher<\/i><\/u> (\u0438\u0445 \u0442\u0430\u043c \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0438) \u0432 \u0432\u0430\u0448 Swift \u043f\u0440\u043e\u0435\u043a\u0442, \u0442\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b <u><i>FlickrFetcher.m<\/i><\/u> \u0432\u0430\u0441 \u0441\u043f\u0440\u043e\u0441\u044f\u0442, \u0445\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c Objective-C \u0444\u0430\u0439\u043b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441\u043e Swift?:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0a2\/fec\/668\/0a2fec6689754a7c94c59af87816f4d2.png\" width=\"700\" height=\"311\"\/><\/p>\n<p>  \u0412\u044b \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442\u0435 \u201c\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u201d. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 <u><i>AdaptiveSplitViewController1Swift-Bridging-Header.h<\/i><\/u> \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 public API \u0434\u043b\u044f <a href=\"https:\/\/www.flickr.com\">Flickr<\/a>:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/027\/633\/622\/02763362286646f58d2ffa52c3b5f9a9.png\" width=\"600\" height=\"334\"\/><\/p>\n<p>  \u0412\u0441\u0435. \u0412\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c <b>public API <\/b>\u0434\u043b\u044f <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u0412\u0430\u043c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043b\u044e\u0447<a href=\"https:\/\/www.flickr.com\/services\/api\/misc.api_keys.html\"> Flickr API<\/a>. \u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 Flickr.com account \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u043d\u0430 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0438\u0445.<br \/>  \u0412\u043d\u043e\u0432\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4e0\/17a\/607\/4e017a607dfa4af4bbf32ca4a2419be9.png\" width=\"850\" height=\"234\"\/><br \/>  \u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043a\u043b\u0430\u0441\u0441\u0443 <code><font color=\"#0000FF\">JustPostedFlickrPhotosTVC<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u201c\u0441\u0432\u0435\u0436\u0438\u0445\u201d \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0441 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a>, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <b>public API<\/b> \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e <b>URL<\/b> \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043e \u201c\u043d\u0435\u0434\u0430\u0432\u043d\u0438\u0445\u201d \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f\u0445. \u0421\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 <b>URL <\/b>\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 <code><font color=\"#0000FF\">[Photo]<\/font><\/code>:<\/p>\n<p>  <u><i>JustPostedFlickrPhotosTVC.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/209\/62b\/b8f\/20962bb8febe466a8a5d89e7d1ce5c5c.png\" width=\"750\" height=\"379\"\/><\/p>\n<p>  \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <b>JSON<\/b> \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 <code><font color=\"#0000FF\">[Photo]<\/font><\/code> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code><font color=\"#0000FF\">flatMap<\/font><\/code>, \u0432\u044b\u0432\u043e\u0434\u0443 \u0442\u0438\u043f\u0430 \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0438<code><font color=\"#0000FF\"> Optional<\/font><\/code> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0443 <code><font color=\"#0000FF\">Photo<\/font><\/code>.<br \/>  \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 <code><font color=\"#0000FF\">self.photos<\/font><\/code> \u201c\u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u201d <b>superclas<\/b>s <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code> \u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u0430 storyboard \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b<b> Flickr Photos<\/b> \u043a\u0430\u043a <code><font color=\"#0000FF\">JustPostedFlickrPhotosTVC<\/font><\/code>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2c7\/63b\/c40\/2c763bc404e9487eaaedfe9162be5e33.png\" width=\"680\" height=\"311\"\/><\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u0447\u0442\u043e \u0438\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u043d\u0430 storyboard <b>Refresh Control <\/b>\u0434\u043b\u044f \u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 <b>Flickr Photos<\/b>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/abb\/127\/2fc\/abb1272fc0ae47cd9d981c16e5e145cc.png\" width=\"900\" height=\"196\"\/><\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code><font color=\"#0000FF\"> func fetchPhotos ()<\/font><\/code> \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c <code><font color=\"#AB0F62\">@IBAction<\/font><\/code> \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e <b>Action<\/b>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/36f\/2f1\/df4\/36f2f1df41544ed7aa77e0f83b6a3d1d.png\" width=\"700\" height=\"143\"\/><\/p>\n<p>  C \u043f\u043e\u043c\u043e\u0449\u044c\u044e <b>CTRL<\/b>-\u043f\u0435\u0440\u0435\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u044f\u0436\u0435\u043c <b>Refresh Control<\/b> \u043a <code><font color=\"#AB0F62\">@IBAction<\/font><\/code> <code><font color=\"#0000FF\">func fetchPhotos ()<\/font><\/code>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c1c\/38a\/eaf\/c1c38aeaf17044a6a1fc8110fca045fc.png\" width=\"900\" height=\"410\"\/><\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code>, \u041c\u043e\u0434\u0435\u043b\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code><font color=\"#0000FF\">var imageURL: NSURL?<\/font><\/code>:<\/p>\n<p>  <u><i>ImageViewController.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f78\/229\/5b7\/f782295b7a5c4682865dc2292f033d09.png\" width=\"700\" height=\"268\"\/><\/p>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"http:\/\/bestkora.com\/IosDeveloper\/lektsiya-9-cs193p-winter-2015-scroll-view-i-mnogopotochnost-multithreading\/\">\u041b\u0435\u043a\u0446\u0438\u0438 9 CS193P Winter 2015 \u2014 Scroll View \u0438 \u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c (Multithreading<\/a>) \u043a\u0443\u0440\u0441\u0430 <a href=\"https:\/\/itunes.apple.com\/us\/course\/developing-ios-8-apps-swift\/id961180099\">\u00abDeveloping iOS 8 Apps with Swift\u00bb <\/a> \u0441\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430 CS193P \u0437\u0438\u043c\u0430 2015 \u0433\u043e\u0434\u0430. <br \/>  \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u043c\u0443\u0441\u044f \u043d\u0430 storyboard<b> Image View Controller<\/b>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3c4\/87a\/90a\/3c487a90ac54436ea74ad448c5ed8c3a.png\" width=\"700\" height=\"218\"\/><\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0436\u0434\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 c <u><a href=\"https:\/\/www.flickr.com\">Flickr<\/a><\/u>, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0435\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0f2\/a5b\/fec\/0f2a5bfec4c848c188a0503efdf6e544.png\" width=\"800\" height=\"394\"\/><\/p>\n<p>  \u0412\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 <b>Compact-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u0430\u0445 (\u0432\u0441\u0435 iPhones, \u043a\u0440\u043e\u043c\u0435 iPhone 6+ \u0438 iPhone 6s+, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0432\u0438\u0434\u0435), \u043d\u043e \u043d\u0430 <b>Regular-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u0430\u0445 (\u0432\u0441\u0435 iPad \u0438 iPhone 6+ \u0438 iPhone 6s+ \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435) \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <b>Split View Controller<\/b>.<br \/>  \u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 <b><a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a><\/b> \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <i><u>AdaptiveSplitViewController1Swift<\/u><\/i>. <br \/>  \u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u044b \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b> Split View Controller<\/b> \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435.<\/p>\n<h2>1. \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e Split View Controller<\/h2>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 storyboard \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u043d\u044e <b>File<\/b> -&gt; <b>New <\/b>-&gt; <b>File<\/b> -&gt; <b>User Interface<\/b>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/15f\/897\/2af\/15f8972af0594c64ae9d242aec78b736.png\" width=\"600\" height=\"422\"\/><\/p>\n<p>  \u041d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0435 \u0443\u0441\u043b\u043e\u0432\u043d\u043e iPad.storyboard (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0438\u043c\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c iPad.storyboard \u0432 Main.storyboard):<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0d5\/bec\/218\/0d5bec2180d34d2cba7caf24a6a78a67.png\" width=\"400\" height=\"308\"\/><br \/>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0443\u0441\u0442\u0443\u044e iPad.storyboard. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0441 iPad.storyboard \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043e\u0434 \u0432 <i><u> AppDelegate.swift<\/u><\/i>:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ed8\/9c2\/58a\/ed89c258a39a409091930463d4f9169a.png\" width=\"700\" height=\"242\"\/><\/p>\n<p>  \u0412\u044b\u0442\u044f\u043d\u0438\u043c \u0438\u0437 \u041f\u0430\u043b\u0438\u0442\u0440\u044b \u041e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043c \u043d\u0430 storyboard <b>Split View Controller<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u0432\u0443\u043c\u044f \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0449\u0438\u043c\u0438 <b>View Controllers,<\/b> \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0442\u0443\u0442 \u0436\u0435 \u0443\u0434\u0430\u043b\u0438\u043c, \u0430 \u0432\u043c\u0435\u0441\u0442\u043e <b>Master<\/b> \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0441 Main.storyboard <code><font color=\"#0000FF\">Flickr Photos<\/font><\/code>, \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 <b>Navigation Controller<\/b>, \u0438 \u0432\u043c\u0435\u0441\u0442\u043e <b>Detail<\/b> \u2014 <code><font color=\"#0000FF\">Image View Controller<\/font><\/code>, \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 <b>Navigation Controller<\/b>.<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f09\/155\/33c\/f0915533c6d3418993f99aad7e9a4956.png\" width=\"700\" height=\"488\"\/><\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 <b>segue<\/b> \u0442\u0438\u043f\u0430 <b>Show Detail <\/b>\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u00abShow Photo\u00bb.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ae9\/635\/3f0\/ae96353f0e0a4b7e8fb23be72445c8c4.png\" width=\"700\" height=\"519\"\/><\/p>\n<p>  \u0412 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432 \u0418\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435 \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0434\u0430\u0435\u0442\u0441\u044f \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435, \u0447\u0442\u043e <b>segue <\/b>\u0442\u0438\u043f\u0430 <b>Show Detail<\/b> \u2014 \u044d\u0442\u043e<b> Replace segu<\/b>e, \u0430 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e<b> Detail<\/b> \u044d\u0442\u043e\u0433\u043e <b>Split View Controller<\/b> \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u044b\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u043c <b>MVC<\/b>. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u041a\u0430\u043a \u0438 \u0432\u0441\u044f\u043a\u0438\u0439 \u0434\u0440\u0443\u0433\u043e\u0439<b> segue<\/b>, <b>segue<\/b> \u0442\u0438\u043f\u0430 <b>Show Detail <\/b> \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 <code><font color=\"#0000FF\">destination<\/font><\/code> ( \u0442\u043e\u0442<b> View Controller<\/b>, \u043a\u0443\u0434\u0430 \u043c\u044b \u201c\u043f\u0435\u0440\u0435\u0435\u0437\u0436\u0430\u0435\u043c\u201d \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 <b>segue<\/b>) \u2014 \u044d\u0442\u043e <code><font color=\"#0000FF\">UINavigationController<\/font><\/code>:<\/p>\n<p>  <u><i>FlickrPhotosTVC.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/18a\/7c9\/816\/18a7c9816bd24e93bca66ac4e24557d3.png\" width=\"700\" height=\"262\"\/><\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <b>segue<\/b> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 <b>Detail<\/b> \u043d\u043e\u0432\u044b\u043c <b>MVC<\/b>, \u0430 <code><font color=\"#0000FF\">prepareForSegue<\/font><\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0435\u0449\u0435 \u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code> \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u041c\u043e\u0434\u0435\u043b\u0438 (\u0442\u043e \u0435\u0441\u0442\u044c<code><font color=\"#0000FF\"> imageURL<\/font><\/code>) \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <b>Image View Controller<\/b>, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 <b>outlets<\/b> \u0435\u0449\u0435 \u043d\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0438 \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code> \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u041c\u043e\u0434\u0435\u043b\u0438 \u2014 <code><font color=\"#0000FF\"> imageURL<\/font><\/code>, \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.flickr.com\">Flickr<\/a> \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e, \u0435\u0441\u043b\u0438 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code> \u0443\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435:<\/p>\n<p>  <u><i>ImageViewController.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/edf\/37f\/c74\/edf37fc746d547acaad226fea63ba763.png\" width=\"700\" height=\"219\"\/><\/p>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 <b>Detail<\/b> \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u043c <b>MVC<\/b>, \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0435\u0442\u0438 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 UI \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 \u201c\u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430\u201d <code><font color=\"#0000FF\">viewWillAppear<\/font><\/code>, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code><font color=\"#0000FF\">image<\/font><\/code> \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435:<\/p>\n<p>  <u><i>ImageViewController.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/47e\/c5c\/640\/47ec5c640ddb42b0aadd11c8e3e99d5c.png\" width=\"680\" height=\"150\"\/><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3c6\/3c4\/fcb\/3c63c4fcb95644f49538f1f9576c7f56.png\" width=\"680\" height=\"534\"\/><\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 iPhone 6+ \u0438 \u043d\u0430 iPad \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5f2\/f40\/d0c\/5f2f40d0c2e94f8a88fa4147b80df264.png\" width=\"500\" height=\"430\"\/><\/p>\n<p>  \u041d\u0430 iPhone 6+ \u0438 iPad 2 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0439 \u044d\u043a\u0440\u0430\u043d \u2014 \u044d\u0442\u043e <b>Detail<\/b> (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code>) \u0434\u043b\u044f <b>SplitViewController<\/b>, \u0438 \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 <b>SplitViewController<\/b> \u0440\u0430\u043d\u0435\u0435, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f iPad. \u041d\u043e \u0435\u0441\u043b\u0438 \u043d\u0430 iPhone 6+ \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u043a <b>Master<\/b> (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c Flickr \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439), \u0442\u043e \u043d\u0430 iPad \u0434\u0430\u0436\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0436\u0435\u0441\u0442 <code><font color=\"#610B5E\">swipe<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043d\u0430\u043c <b>Master<\/b>, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a Flickr \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. <br \/>  \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u0438 \u044d\u043a\u0440\u0430\u043d \u0441 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f. \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043d\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 \u0432 <b>Master<\/b>.<br \/>  <u><i>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 iPad \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6dd\/bdf\/389\/6ddbdf389b7843739f1cbc5b18d44226.png\" width=\"900\" height=\"374\"\/><\/p>\n<p>  <u><i>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 iPad \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/97d\/dbf\/0aa\/97ddbf0aabed49d780ab601cf2da7f7d.png\" width=\"900\" height=\"325\"\/><br \/>  \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  <u><i>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 iPhone 6+ \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b1c\/4d8\/bb1\/b1c4d8bb1b454cafa42817be78421efc.png\" width=\"700\" height=\"338\"\/><\/p>\n<p>  \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430, \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043d\u0430\u0441 \u0432\u044b\u0431\u0440\u0430\u0442\u044c Flickr \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 \u044d\u0442\u0443 \u043a\u043d\u043e\u043f\u043a\u0443, \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u0432 <b>Master<\/b>, \u0442\u043e \u0435\u0441\u0442\u044c \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0435\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u042d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<p>  <u><i>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 iPhone 6+<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e47\/c17\/3a3\/e47c173a30b44a4688a794820b4a40e1.png\" width=\"800\" height=\"239\"\/><\/p>\n<p>  \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 <b>Detail<\/b>.<\/p>\n<p>  \u041a\u0430\u043a\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u044d\u0442\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432?<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 <b>Regular-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u0430\u043c\u0438 (iPad \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0438 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0430\u0445 \u0438 iPhone 6+, iPhone 6s+ \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435), \u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0438 <b>Master<\/b>, \u0438 <b>Detail<\/b>. \u042d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u0434\u043b\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b> \u043d\u0430\u0437\u0432\u0430\u043d <code><font color=\"#FF0000\">expanded<\/font><\/code>. \u042d\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043d\u0430\u043c \u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e <b>Split View Controller<\/b>.<br \/>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 <b>Compact-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u0430\u043c\u0438 ( iPhone 6+, iPhone 6s+ \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0432\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 iPhones \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0438 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0430\u0445), \u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d <b>MVC<\/b>: \u043b\u0438\u0431\u043e <b>Master<\/b>, \u043b\u0438\u0431\u043e <b>Detail<\/b>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d <code><font color=\"#FF0000\">collapsed<\/font><\/code> \u0434\u043b\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b>. \u042d\u0442\u043e \u0440\u0435\u0436\u0438\u043c, \u043a\u043e\u0433\u0434\u0430 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a <b>Navigation Controller<\/b>, \u0432 \u0441\u0442\u044d\u043a\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0438 <b>Master<\/b>, \u0438 <b>Detail<\/b>. <br \/>  \u0423 \u043d\u0430\u0441 \u043e\u0434\u043d\u0430 storyboard, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 (iPhone \u0438 iPad) \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u041d\u043e \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442 \u0434\u0432\u0435 \u0432\u0435\u0449\u0438:  <\/p>\n<ul>\n<li>\u041c\u044b \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c iPad \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430, \u043a\u0430\u043a \u0438 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c iPhone \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435;<\/li>\n<li>\u041f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c iPhone \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0431\u044b \u043d\u0435 <b>Detail<\/b> \u0441 \u043f\u0443\u0441\u0442\u044b\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c (\u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0434\u043b\u044f iPad), \u0430 <b>Master<\/b> (\u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0434\u043b\u044f iPhone).<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c iPad \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0435\u0435 \u044f\u0432\u043d\u043e \u043d\u0430 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0432 <i><u>AppDelegate.swift<\/u><\/i>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/eff\/0b8\/65a\/eff0b865aad340259d4235dc7edbd772.png\" width=\"730\" height=\"271\"\/><br \/>  \u0438 \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code><font color=\"#0000FF\">prepareForSegue<\/font><\/code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code><font color=\"#0000FF\">FlickrPhotos<\/font><\/code>:<\/p>\n<p>  <i><u>FlickrPhotos.swift<\/u><\/i><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/52b\/40a\/b78\/52b40ab784f246ceab89ea316283bc5d.png\" width=\"700\" height=\"318\"\/><\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <b>Navigation Controller<\/b> \u0434\u043b\u044f <b>Master<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u201cFlickr Photos\u201d:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/593\/b6e\/68d\/593b6e68d62d4341a9ea10a6168f0443.png\" width=\"800\" height=\"440\"\/><\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u0443\u044e \u043a\u043d\u043e\u043f\u043a\u0443 \u0434\u043b\u044f iPad \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0438 \u043a\u043d\u043e\u043f\u043a\u0443 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0434\u043b\u044f iPhone 6+, iPhone 6s+ \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9ed\/c7e\/a2f\/9edc7ea2ffce4adc94bd0b3a117b74c8.png\" width=\"600\" height=\"422\"\/><\/p>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u043d\u0430 iPhone 6+, iPhone 6s+ \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/222\/5a9\/87b\/2225a987bbaf446286a6b41382bc2713.png\" width=\"800\" height=\"243\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b> \u0434\u043b\u044f <b>Regular-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439.<\/p>\n<p>  \u0427\u0442\u043e \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e<b> Split View Controller<\/b> \u0434\u043b\u044f <b>Compact-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432? <br \/>  \u041d\u0430 iPhones \u0440\u0430\u0431\u043e\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043a\u0430\u0437\u0430 <b>Master<\/b> \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 <b>Detail<\/b> c \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u044d\u043a\u043e\u0432\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 <b>Navigation Controller<\/b>. \u042d\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code>, \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 <code><font color=\"#0000FF\">AppDelegate<\/font><\/code>. <br \/>  \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code>:<\/p>\n<p>  <u><i>AppDelegate.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/de8\/7d8\/8d6\/de87d88d69824334b9a5a2802760b8bd.png\" width=\"730\" height=\"301\"\/><\/p>\n<p>  \u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <code><font color=\"#0000FF\">collapseSecondaryViewController, ontoPrimaryViewController<\/font><\/code> \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0432 <code><font color=\"#FF0000\">collapsed<\/font><\/code> \u0440\u0435\u0436\u0438\u043c, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d <b>View Controller<\/b>. \u041e\u043d \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0441, \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c <b>Detail<\/b>? \u0415\u0441\u043b\u0438 \u043c\u044b \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u043c <code><font color=\"#0000FF\">true<\/font><\/code>, \u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432 <code><font color=\"#FF0000\">collapsed<\/font><\/code> \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <b>Master<\/b>, \u0435\u0441\u043b\u0438 <code><font color=\"#0000FF\">false<\/font><\/code> \u2014 \u0442\u043e <b>Detail<\/b>. \u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u043c\u0435\u0442\u044c <b>Master<\/b> \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u0433\u0434\u0430 <b>Detail<\/b> \u2014 \u044d\u0442\u043e <b>Navigation Controller,<\/b> \u0435\u0433\u043e \u0442\u043e\u043f\u043e\u0432\u044b\u043c <b>View Controller<\/b> \u0432 \u0441\u0442\u044d\u043a\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <font color=\"#0000FF\">ImageViewController<\/font> ,<b> \u041c<\/b>\u043e\u0434\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e <font color=\"#0000FF\">imageURL<\/font> \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e\u0435 <font color=\"#0000FF\">nil<\/font>. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043c\u044b \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0438\u0442\u044c <font color=\"#0000FF\">true<\/font>:<\/p>\n<p>  <u><i>AppDelegate.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/adf\/f6f\/d92\/adff6fd92b244198aee04b99ca1895b6.png\" width=\"700\" height=\"197\"\/><\/p>\n<p>  \u0421\u0442\u0430\u0440\u0442\u0443\u0435\u043c <i><u>iPhone 6+ \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435<\/u><\/i>:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/184\/c35\/f31\/184c35f3147b427e8275c20b68f1684a.png\" width=\"600\" height=\"466\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f <b>Compact-width<\/b> \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432 \u043c\u044b \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u043c \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u0430 Flickr \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439.<br \/>  \u0418\u0442\u0430\u043a, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b> \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. <\/p>\n<p>  \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c storyboard Main.storyboard \u0432 iPhone.storyboard \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0435\u0435 \u0434\u043b\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0430 iPad.storyboard \u0432 Main.storyboard \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0434\u043b\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a44\/8dd\/7d8\/a448dd7d889f4a48b4ae4ddb5b7057ac.png\" width=\"800\" height=\"486\"\/><\/p>\n<p>  , \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0431\u0430\u0432\u0438\u043c\u0441\u044f \u043e\u0442 \u043b\u0438\u0448\u043d\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 <code><font color=\"#0000FF\">AppDelegate<\/font><\/code>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6ff\/6b2\/4a5\/6ff6b24a5b4449a58d649acb05d9cdd2.png\" width=\"730\" height=\"307\"\/><\/p>\n<p>  \u041e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <i><u>AdaptiveSplitViewController1Swift<\/u><\/i> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a>.<\/p>\n<p>  \u041f\u043e\u0434\u0432\u0435\u0434\u0435\u043c \u0438\u0442\u043e\u0433 \u043d\u0430\u0448\u0438\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b>:<\/p>\n<p>  \u0428\u0430\u0433 1. \u041f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u044f <b>Split View Controller<\/b> \u0438\u0437 \u041f\u0430\u043b\u0438\u0442\u0440\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<br \/>  \u0428\u0430\u0433 2. \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c <b>Master<\/b> \u0438 <b>Detail<\/b> \u0432 <b>Navigation Controller<\/b> \u0438 \u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043a <b>Split View Controller<\/b>.<br \/>  \u0428\u0430\u0433 3. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <b>segue<\/b> \u0442\u0438\u043f\u0430 <b>Show Detail<\/b><br \/>  \u0428\u0430\u0433 4. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f <b>segue<\/b> \u043c\u0435\u0442\u043e\u0434 <code><font color=\"#0000FF\">prepareForSegue<\/font><\/code> \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e <code><font color=\"#0000FF\">destinationViewController<\/font><\/code> \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e<b> segue <\/b>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a <code><font color=\"#0000FF\">ImageViewController<\/font><\/code>, \u0442\u0430\u043a \u0438 <code><font color=\"#0000FF\">UINavigationController<\/font><\/code>, \u0432 \u0441\u0442\u044d\u043a\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0432\u0435\u0440\u0445\u0443 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <code><font color=\"#0000FF\">ImageViewController<\/font><\/code>.<br \/>  \u0428\u0430\u0433 5. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code><font color=\"#0000FF\">prepareForSegue<\/font><\/code> \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 <b>segue<\/b> \u0438 \u0432 <code><font color=\"#0000FF\">AppDelegate<\/font><\/code>.<br \/>  \u0428\u0430\u0433 6. \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 <code><font color=\"#0000FF\">AppDelegate<\/font><\/code> \u043c\u0435\u0442\u043e\u0434 <code><font color=\"#0000FF\">collapseSecondaryViewController:ontoPrimaryViewController:<\/font><\/code> \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0432 <code><font color=\"#FF0000\">collapsed<\/font><\/code> \u0440\u0435\u0436\u0438\u043c, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d <b>View Controller<\/b>; \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c <b>Detail<\/b> \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u044d\u0442\u0438\u0445 6 \u0448\u0430\u0433\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u0434 \u0438 UI \u0441\u0440\u0430\u0437\u0443 \u0436\u0435, \u0435\u0441\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u043c <b>Master-Detail<\/b> \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0438 <b>Show Detail segue<\/b>, \u0438 <b>Navigation Controller<\/b>, \u0438 \u0432\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<p>  \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0435\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 <b>Split View Controller<\/b> \u0434\u043b\u044f iPad, \u0437\u0430\u0434\u0430\u0432 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430 <code><font color=\"#0000FF\">.AllVisible<\/font><\/code>:<\/p>\n<p>  <u><i>AppDelegate.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/186\/ac2\/2a6\/186ac22a62b24b75be263abeb2dcb58b.png\" width=\"700\" height=\"306\"\/><\/p>\n<p>  \u0427\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 <code><font color=\"#0000FF\">preferredDisplayMode?<\/font><\/code> \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430. <b>Split View Controller <\/b>\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430, \u0435\u0441\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c \u0432\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code><font color=\"#0000FF\">preferredDisplayMode<\/font><\/code> \u0440\u0430\u0432\u043d\u043e <code><font color=\"#0000FF\">.Automatic<\/font><\/code>. \u041d\u0430 iPad \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0440\u0435\u0436\u0438\u043c\u0430 <code><font color=\"#0000FF\">.PrimaryOverlay<\/font><\/code> \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 <code><font color=\"#0000FF\">.AllVisible<\/font><\/code> \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0417\u0430\u0434\u0430\u0432\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430 <code><font color=\"#0000FF\">.AllVisible<\/font><\/code>, \u043c\u044b, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0432\u043b\u0438\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043f\u043e\u043a\u0430\u0437 <b>Split View Controller<\/b> \u043d\u0430 iPad \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2db\/379\/536\/2db3795360e84ab8a8b5e16a58c56338.png\" width=\"700\" height=\"475\"\/><\/p>\n<p>  \u0412 <u><i>AppDelegate.swift<\/i><\/u> \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0435\u0449\u0435 \u0434\u0432\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 <\/p>\n<p>  <code><font color=\"#0000FF\">\/\/ splitViewController.preferredPrimaryColumnWidthFraction = 0.5<br \/>  \/\/ splitViewController.maximumPrimaryColumnWidth = 512<\/font><\/code><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043d\u0438\u043c\u0438\u0442\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0441 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u043e\u043a, \u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0438\u0440\u0438\u043d\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043b\u044f <b>Master<\/b> \u0438 <b>Detail<\/b>. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code><font color=\"#0000FF\">preferredPrimaryColumnWidthFraction<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 0.0 \u0434\u043e 1.0, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043b\u044e \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u044d\u043a\u0440\u0430\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 <b>Master<\/b>. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code><font color=\"#0000FF\">UISplitViewControllerAutomaticDimension<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0448\u0438\u0440\u0438\u043d\u0435 <b>Master<\/b>, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0439 <b>Split View Controller<\/b>.<br \/>  \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0448\u0438\u0440\u0438\u043d\u0430 <b>Master<\/b> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 <code><font color=\"#0000FF\">minimumPrimaryColumnWidth<\/font><\/code> \u0438 <code><font color=\"#0000FF\">maximumPrimaryColumnWidth<\/font><\/code>. <b>Split View Controller <\/b>\u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0432\u0430\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0448\u0438\u0440\u0438\u043d\u0443 <b>Master<\/b> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code><font color=\"#0000FF\">primaryColumnWidth<\/font><\/code>.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a55\/804\/1a6\/a558041a612744d2a528ae7546424262.png\" width=\"700\" height=\"547\"\/><\/p>\n<p>  \u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 <b><a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a><\/b> \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <i><u>AdaptiveSplitViewController1Swift<\/u><\/i>. <\/p>\n<h2>2. \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e Table View Controllers \u0432 Master<\/h2>\n<p>  \u041d\u043e \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 <b>Table View Controller<\/b> \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 Flickr \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438. <br \/>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <u><i>AdaptiveSplitViewController1Swift<\/i><\/u> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <i><u>AdaptiveSplitViewController2Swift<\/u><\/i> \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0432 <b>Master<\/b> \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 <b>Table View Controller<\/b>. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/db8\/0cf\/a99\/db80cfa990b847a99ea05e8bb355c7f4.png\" width=\"800\" height=\"426\"\/><\/p>\n<p>  \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0430, \u043f\u043e\u0442\u043e\u043c \u043b\u044e\u0431\u0443\u044e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0430 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0435\u0433\u043e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d3b\/ee2\/caa\/d3bee2caad214a7eb229a8e728561b74.png\" width=\"700\" height=\"343\"\/><\/p>\n<p>  \u042d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442<b> Table View Controller<\/b> \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">FlickrPhotographersTVC<\/font><\/code>. \u042d\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u043f\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 <code><font color=\"#0000FF\">FlickrPhotoTV\u0421<\/font><\/code>, \u0442\u0430\u043c \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code><font color=\"#0000FF\">var photos = [Photo]()<\/font><\/code>, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0441\u043e\u0431\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439, \u043d\u043e \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code><font color=\"#0000FF\">var photographers = [Photographer]()<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432, \u0441\u0434\u0435\u043b\u0430\u0432\u0448\u0438\u0445 \u044d\u0442\u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <b>\u041c<\/b>\u043e\u0434\u0435\u043b\u044c\u044e \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 <code><font color=\"#0000FF\">FlickrPhotographersTVC<\/font><\/code>:<\/p>\n<p>  <u><i>FlickrPhotographersTV\u0421.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6c1\/c19\/906\/6c1c199065a743718253723c77037ccd.png\" width=\"680\" height=\"263\"\/><\/p>\n<p>  \u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f <code><font color=\"#0000FF\">Photo<\/font><\/code> \u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 <code><font color=\"#0000FF\">Photographer<\/font><\/code> \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <i><u>DataModel.swift<\/u><\/i>:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fbf\/b09\/958\/fbfb09958fe544e298d7a835da32215b.png\" width=\"700\" height=\"524\"\/><\/p>\n<p>  \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u041c\u043e\u0434\u0435\u043b\u0438 <code><font color=\"#0000FF\">var photographers = [Photographer]()<\/font><\/code> \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u044b <code><font color=\"#0000FF\">UITableViewDataSource<\/font><\/code>:<\/p>\n<p>  <u><i>FlickrPhotographersTV\u0421.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2bb\/126\/844\/2bb12684483f4a3f8b6fc1f7cbaaf9e8.png\" width=\"700\" height=\"277\"\/><\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u201c\u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430\u201d \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 <b>Flickr Photos<\/b> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code><font color=\"#0000FF\">prepareForSegue<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code><font color=\"#0000FF\">FlickrPhotos<\/font><\/code> \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e <code><font color=\"#0000FF\">destinationViewController<\/font><\/code>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u201c\u043f\u0435\u0440\u0435\u0435\u0437\u0436\u0430\u0435\u043c\u201d, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432<b> Navigation Controller<\/b>:<\/p>\n<p>  <u><i>FlickrPhotographersTV\u0421.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/12e\/8e6\/267\/12e8e626738d427d9363f2c0cbd7704a.png\" width=\"700\" height=\"342\"\/><\/p>\n<p>  \u0412\u044b\u0431\u0440\u0430\u0432 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0430 <code><font color=\"#0000FF\">photographer<\/font><\/code>, \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0434\u043b\u044f \u041c\u043e\u0434\u0435\u043b\u0438 <code><font color=\"#0000FF\">destinationViewController<\/font><\/code>, \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 <code><font color=\"#0000FF\">photos<\/font><\/code>, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u044d\u0442\u0438\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u043c.<br \/>  \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0434\u043b\u044f storyboard \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0432 <code><font color=\"#0000FF\">private<\/font><\/code> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <code><font color=\"#0000FF\">Storyboard<\/font><\/code>:<\/p>\n<p>  <u><i>FlickrPhotographersTV\u0421.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/00c\/8bc\/5a5\/00c8bc5a5c9b4884b1f6dc646c25d7b6.png\" width=\"700\" height=\"83\"\/><\/p>\n<p>  \u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u201c\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435\u201d \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">FlickrPhotographersTVC<\/font><\/code> \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440. \u041e\u043d \u043d\u0435 \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <code><font color=\"#0000FF\">[Photo]<\/font><\/code>: c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Flickr \u0438\u043b\u0438 \u0438\u0437 <code><font color=\"#0000FF\">NSUserDefaults<\/font><\/code>. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code><font color=\"#0000FF\">[Photo]<\/font><\/code> c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Flickr \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">JustPostedFlickrPhotosTVC<\/font><\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c <b>subclass<\/b> \u043d\u0435 <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code> \u043a\u0430\u043a \u0432 \u201c\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u201d \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435\u201d, \u0430 <b>subclass<\/b> <code><font color=\"#0000FF\">FlickrPhotographersTVC<\/font><\/code>:<\/p>\n<p>  <i><u>JustPostedFlickrPhotosTV\u0421.swift<\/u><\/i><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8ff\/0e2\/3da\/8ff0e23da8b541b5aa41f7d44dac51cb.png\" width=\"700\" height=\"153\"\/><\/p>\n<p>  \u0418\u043c\u0435\u043d\u043d\u043e \u043a\u043b\u0430\u0441\u0441 <code><font color=\"#0000FF\">JustPostedFlickrPhotosTVC<\/font><\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u0434\u043b\u044f \u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 <b>Flickr Photographers<\/b>:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2c9\/e40\/774\/2c9e407748144904a606ffac20cb3f5a.png\" width=\"700\" height=\"354\"\/><\/p>\n<p>  \u0430 \u0434\u043b\u044f \u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430<b> Flickr Photos<\/b> \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u0431\u0443\u0434\u0435\u0442 <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code>:<br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b7b\/212\/281\/b7b212281bb646d29c95ed8019e35339.png\" width=\"700\" height=\"361\"\/><\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 iPhone 6+ (\u0438\u043b\u0438 iPhone 6s+) \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u0432 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u044b\u0439 (\u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0437 <code><font color=\"#FF0000\">collapsed<\/font><\/code> \u0440\u0435\u0436\u0438\u043c\u0430 \u0432 <code><font color=\"#FF0000\">expanded<\/font><\/code> \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0433\u043e <b>Split View Controller<\/b>). \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0433\u043e \u044d\u043a\u0440\u0430\u043d \u0432 \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0421\u043f\u0438\u0441\u043e\u043a \u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 <b>Detail<\/b>, \u0430 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/34f\/f23\/4a5\/34ff234a5e0a4da1af7c45ed09baed04.png\" width=\"700\" height=\"444\"\/><\/p>\n<p>  \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0438\u0437 <code><font color=\"#FF0000\">collapsed<\/font><\/code> \u0440\u0435\u0436\u0438\u043c\u0430, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d <b>View Controller,<\/b> \u0432 \u0440\u0435\u0436\u0438\u043c <code><font color=\"#FF0000\">expanded<\/font><\/code> (<b>Master<\/b> \u0438 <b>Detail<\/b> \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435), \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 <b>Split View Controller<\/b> \u0431\u0435\u0440\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043a\u0440\u0430\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <b>Detail<\/b> \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0410 \u044d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e: \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 <b>Detail<\/b> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e <code><font color=\"#0000FF\">ImageViewController<\/font><\/code>. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 <code><font color=\"#0000FF\">separateSecondaryViewControllerFromPrimaryViewController<\/font><\/code> \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code> \u043d\u0430\u043c \u0441\u0430\u043c\u0438\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443:<\/p>\n<p>  <u><i>AppDelegate.swift<\/i><\/u><br \/>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/651\/ab2\/411\/651ab24113d2433fb937778cc972e71d.png\" width=\"700\" height=\"434\"\/><\/p>\n<p>  \u041c\u0435\u0442\u043e\u0434 <code><font color=\"#0000FF\">separateSecondaryViewControllerFromPrimaryViewController<\/font><\/code> \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0438\u0437 <code><font color=\"#FF0000\">collapsed<\/font><\/code> \u0440\u0435\u0436\u0438\u043c\u0430 \u0432 <code><font color=\"#FF0000\">expanded<\/font><\/code> \u0438 \u043e\u043d \u043d\u0430\u0441 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 <b>View Controller<\/b> \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u0437\u044f\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <b>Detail<\/b>. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <b>Detail<\/b> \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439 <b>View Controller<\/b>, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 <b>Master<\/b>. \u0412 \u043d\u0430\u0448\u0435\u043c \u043e\u0441\u043e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 <code><font color=\"#0000FF\">primaryViewController<\/font><\/code> \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 <code><font color=\"#0000FF\">FlickrPhotosTVC<\/font><\/code>, \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0432 <b>Navigation Controller<\/b>, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c <b>Detail<\/b> \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u043a\u0443\u0434\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u041d\u0430\u043c \u043d\u0435\u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u0442\u044c <code><font color=\"#0000FF\">ImageViewController<\/font><\/code> (\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438) \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e storyboard \u0438 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 <b>Detail<\/b> \u043d\u0430 storyboard (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e <b>Navigation Controller<\/b> \u0434\u043b\u044f <b>Detail<\/b>). \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u201cdetailNavigation\u201d:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4bb\/d61\/4f8\/4bbd614f8a1e4ffeb38fdcb668b52b37.png\" width=\"700\" height=\"376\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f <b>Detail<\/b> \u0441\u043e storyboard, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0448 <code><font color=\"#0000FF\">ImageViewController<\/font><\/code> (\u0432 \u043a\u043e\u0434\u0435 \u044d\u0442\u043e <code><font color=\"#0000FF\">controller<\/font><\/code>) \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438: \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c, \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code><font color=\"#0000FF\">ImageViewController<\/font><\/code> \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0433\u043e <b>\u041c<\/b>\u043e\u0434\u0435\u043b\u044c ( \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e <code><font color=\"#0000FF\">imageURL<\/font><\/code>), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439:<\/p>\n<p>  <code><font color=\"#0000FF\">if let photo = photosView.photos.first {<br \/>   controller.imageURL = NSURL(string: photo.imageURL)<br \/>   controller.title = photo.title<br \/>   }<\/font><\/code><br \/>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/488\/bc6\/b7b\/488bc6b7bd4b4f16926e5eddd196bec9.png\" width=\"700\" height=\"446\"\/><\/p>\n<p>  \u0412\u044b\u0432\u043e\u0434: \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 <b>Split View Controller <\/b>c \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 (&gt;1) <b>Table View Controllers<\/b> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <b>Master<\/b>, \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code><font color=\"#0000FF\">separateSecondaryViewControllerFromPrimaryViewController<\/font><\/code> \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code>.<br \/>   \u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a> \u2014 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <u><i>AdaptiveSplitViewController2Swift<\/i><\/u>. <\/p>\n<p>  \u0412\u043e<b> <a href=\"https:\/\/habrahabr.ru\/post\/278781\/\"> \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a><\/b> \u044d\u0442\u043e\u0439 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c \u043d\u0430\u0448\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u043c \u0435\u0433\u043e \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 3 \u2014 <b>Tab Bar Controller<\/b> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <b>Master<\/b> \u0434\u043b\u044f <b>Split View Controller<\/b>, \u0438 5 \u2014 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 <b>Popover<\/b>.<br \/>   \u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/AdaptiveSplitViewSwift\">Github<\/a>.               <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/278573\/\"> https:\/\/habrahabr.ru\/post\/278573\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/dfa\/ad6\/aaf\/dfaad6aaf7d745139434deab957f1f87.png\"\/><\/p>\n<p>  \u0421 \u043d\u0435\u0437\u0430\u043f\u0430\u043c\u044f\u0442\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d <b>Split View Controller<\/b> \u0438 <b>Popover<\/b> \u0432 iOS \u0431\u044b\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 iPad.<br \/>   \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 iOS 8, \u043e\u043d\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043d\u0430 iPad, \u0438 \u043d\u0430 iPhone, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 <b>Size Classes<\/b> \u0438 \u0438\u0445 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e. \u041e\u0434\u043d\u0430\u043a\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f Apple \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043e\u0432 <code><font color=\"#0000FF\">UISplitViewControllerDelegate<\/font><\/code> \u0438 <code><font color=\"#0000FF\">UIPopoverPresentationControllerDelegate<\/font><\/code>. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 <b>Split View Controller<\/b> \u0438 <b>Popover <\/b> \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c <a href=\"https:\/\/www.flickr.com\">Flickr.com<\/a>, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c \u0441\u043e\u0431\u043e\u0439 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. \u0421\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b, \u0442\u0430\u043a \u043a\u0430\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u0442\u0435\u043c \u0432\u0432\u0438\u0434\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u201c\u0432\u0436\u0438\u0432\u0443\u044e\u201d \u0442\u0430\u043a\u0438\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 Swift, \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 c <code><font color=\"#0000FF\">{get}<\/font><\/code> \u0438 <code><font color=\"#0000FF\">{set}<\/font><\/code>, \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 <code><font color=\"#0000FF\">didSet{}<\/font><\/code>, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 <code><font color=\"#0000FF\">map, flatMap, filter<\/font><\/code>, \u0432\u044b\u0432\u043e\u0434 \u0442\u0438\u043f\u0430 \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0443 (overload) \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Swift \u0438 Objective-C \u043a\u043e\u0434\u0430, \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 <code><font color=\"#0000FF\">struct<\/font><\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 <code><font color=\"#0000FF\">NSUserDefaults<\/font><\/code> \u0438 \u0442.\u0434. \u041d\u043e \u0432\u0441\u0435 \u0436\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u043a\u0446\u0435\u043d\u0442 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445 <b>Split View Controller<\/b> \u0438 <b>Popover<\/b>.<br \/>   \u0412\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0432\u0441\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u0445\u043e\u0436\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-275873","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=275873"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275873\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=275873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=275873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=275873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}