
IOS 8 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдЯреБрдбреЗ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рдЕрдм рддрдХ, рдПрдкреАрдЖрдИ рдЕрдВрдд рдореЗрдВ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдПрдХ
рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрдИ рдХреНрд╖рдг рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА рдЕрдкрдирд╛ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рдХрдЯ (рдиреЛрдЯ, рд╕реНрд╡рд┐рдлреНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред
рдПрдХреНрд╕рдЯреЗрдВрд╢рди
IOS рдиреЗ рдПрдХ рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреА - рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд╣рд░ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд╡рд╛рдЗрдВрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╕реНрддрд╛рд░ рдмрд┐рдВрджреБ iOS рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ:
- рдЖрдЬ (рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░) - рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЖрдЬ рд╕реНрдХреНрд░реАрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
- рд╢реЗрдпрд░ - рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рдкрд░ рджреЛрд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╛ рдлрд╝реАрдб рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ
- рдХрд╛рд░реНрд░рд╡рд╛рдИ - рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦреЗрдВ рдпрд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ
- рдлреЛрдЯреЛ рдПрдбрд┐рдЯрд┐рдВрдЧ - рдлреЛрдЯреЛ рдРрдк рдХреЗ рдЕрдВрджрд░ рдлреЛрдЯреЛ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдПрдбрд┐рдЯ рдХрд░реЗрдВ
- рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ - рд╡рд░реНрддрдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
- рдХрд╕реНрдЯрдо рдХреАрдмреЛрд░реНрдб - рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдореВрд▓ iOS рдХреАрдмреЛрд░реНрдб рдХреЛ рдЕрдкрдиреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗрд╡рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдмрдВрдбрд▓ рд╣реИред рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдпрд╣ рдПрдХ рдЖрд╡реЗрджрди рдирд╣реАрдВ рд╣реИ!
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдРрдк рдХреЛ рдРрдк рдЖрдИрдкреАрд╕реА (рдкрд╛рдЗрдк, рд╕реЙрдХреЗрдЯ, ...) рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд░рд┐рдЪрд┐рдд [UIApplication OpenURL] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: (рдЕрдм рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ,
рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреЗрдВ) рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдРрдк рд╕рдореВрд╣ ред
рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдорд╛рди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рд▓реЗрдЦрди
рдпрд╣рд╛рдБ рд╣реИ ред
рд╡рд┐рдЬреЗрдЯ
рд╡рд┐рдЬреЗрдЯ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЯреБрдбреЗ рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреБрдбреЗ рдЦреЛрд▓рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЬрд┐рд╕ рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ рд╡рд╣ рддреБрд░рдВрдд рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред
рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЬреЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдЕрднреА рднреА рдмреАрдЯрд╛ рд╣реИ)ред рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЯреБрдбреЗ рд╕реНрдХреНрд░реАрди рдХреЛ рдЦреЛрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╕рдВрдкрд╛рджрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝реЗрдВред
рдХрдВрдЯреЗрдирд░ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдВрдмрдВрдз
NotificationCenter.framework рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдПрдХ рд╡рд┐рдЬреЗрдЯ рдПрдХ UIViewController рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдЖрдИрдУрдПрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдЪрд┐рдд рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡реНрдпреВрд╡рд┐рд▓реЗрдпрд░, рдЖрджрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрдкрдбреЗрдЯ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП, iOS рдХрднреА-рдХрднреА рд╡рд┐рдЬреЗрдЯ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдЬрдм рд╡рд┐рдЬреЗрдЯ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдЦрд┐рд░реА рд╕реНрдиреИрдкрд╢реЙрдЯ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЕрд╕рд▓реА рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдВрдбреЛред рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП,
NCWidgetProviding рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
protocol NCWidgetProviding : NSObjectProtocol {
рдЬрдм рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдЬреЗрдЯрд░реБрдк рдпреВрдЯрдбреЗрдЯрд╡рд┐рдЯ рдХреЙрдордкреНрд▓реЗрд╕рдореЗрдВрдЯрд╣реИрдВрдбрд▓рд░ рдХреЛ рд╡рд┐рдЬреЗрдЯ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдкрдиреА рд╡рд┐рдВрдбреЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдкреВрд░реНрдгрд╣реИрдВрдбрд▓рд░ рдмреНрд▓реЙрдХ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
- NCUpdateResultNewData - рдирдИ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
- NCUpdateResultNoData - рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
- NCUpdateResultFailed - рдЕрджреНрдпрддрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ
рдЪреВрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░ рд╕реЗ рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░ рд╡рд┐рдЬреЗрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡рд┐рдЬреЗрдЯ рд╕реНрд╡рдпрдВ рдЗрд╕рдХреА рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдКрдБрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬреЗрдЯ рдСрдЯреЛ рд▓реЗрдЖрдЙрдЯ рдпрд╛
рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ UIViewController рдЙрджрд╛рд╣рд░рдг
рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдкрддреНрддрд┐ред
override func viewDidLoad() { super.viewDidLoad() self.preferredContentSize.height = 350 }
рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ:
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рд╛рдордЧреНрд░реА рдЕрджреНрдпрддрд┐рдд рд╣реИ
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдЬрд╡рд╛рдм
- рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░реЗрдВ (рдЖрдИрдУрдПрд╕ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдорд╛рд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИ)
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рдЬреЗрдЯ UI рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реАрдорд╛рдПрдБ рд╣реИрдВ:
- рдХреАрдмреЛрд░реНрдб рди рджрд┐рдЦрд╛рдПрдВ
- рдЖрдк рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, UIDatePicker)
- рдЗрд╕ рд╕рдордп рдирдХреНрд╢реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ (рдЕрдм рдпрд╣ рдЖрдЗрдЯрдо рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - рдорд╛рдирдЪрд┐рддреНрд░ рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ рдЯрд╛рдЗрд▓ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред)
рдЪреВрдВрдХрд┐ рдХреАрдмреЛрд░реНрдб рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рдЬреЗрдЯ рдмрд╛рддрдЪреАрдд
рд╡рд┐рдЬреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
NCWidgetController рдХреНрд▓рд╛рд╕ рд╣реИред
рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╕реЗрдЯ рд╣реИрд╕рдВрддреЛрд╖: forWidgetWithBundleIdentifier: рдореЗрдердб, рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрдбреЗрдЯ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
NCWidgetController.widgetController().setHasContent(true, forWidgetWithBundleIdentifier: "com.e-legion.Traffic.Widget")
рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдЬреЗрдЯ рдФрд░ рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди
рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
NSExtensionContext рд╡рд╕реНрддреБ рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ UIViewController рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реА
рдПрдХреНрд╕рдЯреЗрдВрд╢рдирдХреЙрдиреНрдЯреЗрдХреНрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИред
class NSExtensionContext : NSObject {
рдпрд╛рдиреА, рд╡рд┐рдЬреЗрдЯ рд╕реЗ рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕реНрдХреАрдо рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЯреНрд░реИрдлрд╝рд┐рдХ: //"), рдФрд░ рдЖрдкрдХреЛ рд╡рд┐рдЬреЗрдЯ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
self.extensionContext.openURL(NSURL(string: "traffic://"), completionHandler: nil)
ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, iOS рд╕реБрд░рдХреНрд╖рд╛ рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЛ рд░реЛрдХрддреА рд╣реИред рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдВрдЯреЗрдирд░ рд▓рдХреНрд╖реНрдп рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдПрдХ рд╣реА
рдРрдк рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдВрдЯрд╛рдЗрдЯреЗрд▓рдореЗрдВрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рд╣реЛрдЧреА:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.application-groups</key> <array> <string>group.96GT47C53G.traffic</string> </array> </dict> </plist>
96GT47C53G рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдЖрдИрдбреА рд╣реИред рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, group.traffic, ...
рдЕрдм,
рдХрдВрдЯреЗрдирд░рдлреНрд▓реЛрд░рд╕ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреАрдРрдкреНрд▓реАрдХреЗрд╢рди
рдЧреНрд░реВрдкрдЗрдВрдЯреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕рд╛рдЭрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.96GT47C53G.traffic")
рдЙрджрд╛рд╣рд░рдг
рддреЛ, рдЖрдЗрдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреЛ рдЯреНрд░реИрдлрд┐рдХ рдЬрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдХреНрд╢рд╛ рджрд┐рдЦрд╛рдПрдЧрд╛ред рд╣рдо
Yandex.Maps API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
рдПрдХ рддрд╕реНрд╡реАрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
http://static-maps.yandex.ru/1.x/?ll=30.35,59.9690273&spn=0.01,0.2&size=300,250&l-map,trfрджрд░рдЕрд╕рд▓, рд▓реЗрдЯ рдФрд░ рд▓реЛрди рдореИрдк рдХрд╛ рдХреЗрдВрджреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ spn рдбрд┐рдЧреНрд░реА рдореЗрдВ рдореИрдк рдбрд┐рд╕реНрдкреНрд▓реЗ рдПрд░рд┐рдпрд╛ рдХреА рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕ рдХреЛрдб
GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз
рд╣реИ ред
рдПрдХ рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ
рдХрдВрдЯреЗрдирд░ рдХрд╛ рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдФрд░ рдПрдХ "рд╕реЗрдЯ рдлреНрд░реЗрдо" рдмрдЯрди рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рджреГрд╢реНрдп рд╣реЛрдЧрд╛, рдЬреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдЧрд╛ред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ lat, lon, spn рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд┐рдореНрди рдХреЛрдб рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ:
@IBAction func updateWidgetButtonTapped(sender : AnyObject) { var dict : NSMutableDictionary = NSMutableDictionary() dict["spn"] = self.mapView.region.span.latitudeDelta dict["lat"] = self.mapView.region.center.latitude dict["lon"] = self.mapView.region.center.longitude var dictUrl : NSURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.96GT47C53G.traffic").URLByAppendingPathComponent("settings.dict") dict.writeToFile(dictUrl.path, atomically: true) NCWidgetController.widgetController().setHasContent(true, forWidgetWithBundleIdentifier: "com.e-legion.Traffic.Widget") }
рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝реЗрдВ
рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдирдпрд╛ рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред
File-> New-> Target рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ iOS-> Application Extension-> Today Extension рдЪреБрдиреЗрдВред

рдЕрдм рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЕрднреА рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╡рд┐рдЬреЗрдЯ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, TodayViewController рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
init(coder aDecoder: NSCoder!) { super.init(coder: aDecoder) }
рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ Info.plist рдлрд╝рд╛рдЗрд▓ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЗрд╕рдореЗрдВ NSExtension рдХреБрдВрдЬреА рд╣реИ, рдЬреЛ рдХреБрдЫ рд╡рд┐рдЬреЗрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
<key>NSExtension</key> <dict> <key>NSExtensionMainStoryboard</key> <string>MainInterface</string> <key>NSExtensionPointIdentifier</key> <string>com.apple.widget-extension</string> </dict>
NSExtensionMainStoryboard рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХрд╛ рдирд╛рдо рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред NSExtensionPrincipalClass рдХреЗ рд╕рд╛рде NSExtensionMainStoryboard рдХреБрдВрдЬреА рдХреА рдЬрдЧрд╣ рдФрд░ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдИрдВ рдУрд░ рдмрджрд▓рд╛рд╡ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ widgetMarginInsetsForProposedMarginInsets рд╡рд┐рдзрд┐ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд UIEdgeInsets рд▓реМрдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ред
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets { return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) }
рд╡рд┐рдЬреЗрдЯ рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдПрдХ рдЕрдкрдбреЗрдЯ рдореИрдк рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИред рдЕрдкрдбреЗрдЯ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (viewWillLoad), рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░ рд╡рд┐рдЬреЗрдЯрдкреЗрд░рдлреЙрд░реНрдо рдпреВрдкреАрдбреЗрдЯрд╡реЗрдЯрдХрдВрдкреНрд▓реАрдореЗрдВрдЯрд╣реИрдВрдбрд▓рд░ рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ред рд╡рд┐рдЬреЗрдЯ
рдХрдВрдЯреЗрдирд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╡рд┐рдЬреЗрдЯ рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдЪреАрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рд╕рдм рдХреБрдЫ рдирдо рд╣реИред рдХрднреА-рдХрднреА рдХреНрд░реИрд╢ рд╣реЛрддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рд╡рд┐рдЬреЗрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рднреА рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рд╣реИред рдЬрд▓реНрдж рд╣реА рдпрд╣ рд╕рдм рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕рдореГрджреНрдз рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЖрдк рдЬреЛ рд╣реИ рдЙрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред