рдирдорд╕реНрдХрд╛рд░ рджреЛрд╕реНрддреЛрдВ!
рдпрджрд┐ рдЖрдк рдРрдкреНрдкрд▓ рд╕реЗ рдЧреИрдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд╡рдЧрдд рд╣реИрдВ рдХрд┐ рдЖрдИрдУрдПрд╕ рдХреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 6 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдиреНрдп рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде, Apple рдиреЗ рдСрдЯреЛрд░реЛрдЯреЗрд╢рди рддрдВрддреНрд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИред
рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдСрдЯреЛрд░реЛрдЯреЗрд╢рди рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд┐рддреНрд░ (рд▓рдореНрдмреА) рдФрд░ рд▓реИрдВрдбрд╕реНрдХреЗрдк (рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд) рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рджреЛрдиреЛрдВ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЬрдм рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рджреЛрдиреЛрдВ рдЭреБрдХрд╛рд╡реЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ (рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рд╕реНрдХреНрд░реАрди рдкрд░ рд░реЛрдЯреЗрд╢рди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) - рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ
рдкреНрд░рд╢реНрди рд╣реИрдВ ред
рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░реАрди рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдВрддрд░ рдХреЛ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЬрд╛рдирдирд╛ рдХрд┐ iOS6 рдореЗрдВ рдСрдЯреЛрд░реЛрдЯреЗрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ iOS 6 рд╕реЗ рдкрд╣рд▓реЗ рдерд╛
IOS рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрдЧрдд рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд┐рд░рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд 4 рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдХреНрд░реАрди рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
рдЖрдИрдУрдПрд╕ 5 рдФрд░ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдВ, рдСрдЯреЛрд░реЛрдЯреЗрд╢рди рддрдВрддреНрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
рдЬрдм рдХреЛрдИ рдЙрдкрдХрд░рдг рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЕрдкрдиреЗ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рд╕рд┐рд╕реНрдЯрдо рд╕рдХреНрд░рд┐рдп рдирд┐рдпрдВрддреНрд░рдХ (рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░) рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдЗрд╕ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдСрд░рд┐рдЬрдиреЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ 4 рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ (рдпрд╛ рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВ) рдХреЛ рдШреБрдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдзрд┐ рдХреЛ рдпрд╕ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП, рдпрд╣
shouldAutorotateToInterfaceOrientation рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ
: рд╡рд┐рдзрд┐ рдФрд░ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
Info.plist рдореЗрдВ UISupportedInterfaceOrientations рдХреБрдВрдЬреА рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ рд╣реИ (рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рд░рд╛рдВрд╢ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рднреА рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред


рдпрджрд┐ рдХреЛрдИ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреЛрд░реНрдЯреНрд░реЗрдЯ рдореЛрдб (UIInterfaceOrientationPortrait) рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм iOS 6 рдореЗрдВ
IOS 6 рдореЗрдВ,
shouldAutorotateToInterfaceOrientation рд╡рд┐рдзрд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рджреЛ рдЕрдиреНрдп
рдСрдЯреЛрд░реЛрдЯреЗрд╢рди рдХреЗ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ -
рд╕рдорд░реНрдерд┐рдд InterfaceOrientations рдФрд░
shouldAutorotate ред
рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп (рдпрд╛ рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдорд╛рдореВрд▓реА рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд╕рд┐рд╕реНрдЯрдо рд╢реАрд░реНрд╖-рд╕рдмрд╕реЗ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЪреБрдирд╛рд╡ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПрдЖрдпреБрдЯрд░реЛрдЯреЗрдЯ , рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж (рдХреЗрд╡рд▓ рдпрджрд┐ рдореВрд▓реНрдп YES рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ),
рд╕рдорд░реНрдерд┐рдд рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓
InInfacefaceOrientations рдПрдХ рдмрд┐рдЯ рдореБрдЦреМрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдорд╛рдиреНрдп рдЪрд┐рддреНрд░ рдФрд░ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░рд┐рджреГрд╢реНрдп рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- (NSInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight; }
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд╕реНрдЯрдо supportInterfaceOrientations рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдХ
рд╕рдВрдпреЛрдЬрди рдСрдкрд░реЗрд╢рди (рдмрд┐рдЯрд╡рд╛рдЗрдВрдб рдФрд░) рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЭреБрдХрд╛рд╡ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ (Info.plist рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ AppDelets
рдЖрд╡реЗрджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк
: supportInterfaceOrientationsForWindow
: рд╡рд┐рдзрд┐)ред рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдореЛрдбрд╝ рд╣реИ (рдпрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдирд┐рд░реНрдгрдп рдСрдкрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
app_mask & topmost_controller_mask
рдЬрд╣рд╛рдБ
app_mask Info.plist (рдпрд╛ рддреЛ
рдЖрд╡реЗрджрди: supportInterfaceOrientationsForWindow :) , рдФрд░ рд╢реАрд░реНрд╖ full-screen рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ
supportInterfaceOrientations рдХреЙрд▓рд┐рдВрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк
topmost_controller_mask рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЛрдВ рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рдЪреВрдВрдХрд┐ app_mask рдХрд╛ рдореВрд▓реНрдп рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдШреБрдорд╛рдП рдЬрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрдВрдзреЗ рдХреА рдереИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП , рдФрд░ рд╕рдорд░реНрдерди рдореЗрдВ рдореБрдЦреМрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рди рдХрд┐рдпрд╛ рдЬрд╛рдПред
- рдпрджрд┐ рдЖрд╡реЗрджрди: supportInterfaceOrientationsForWindow : AppDelegate рдореЗрдВ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Info.plist рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
- рдпрджрд┐ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╕рдВрдпреБрдЧреНрдорди рдХрд╛ рдкрд░рд┐рдгрд╛рдо 0 рд╣реИ, рддреЛ рдпрд╣ UIApplicationInvalidInterfaceOrientationException рдлреЗрдВрдХ рджреЗрдЧрд╛
- рдпрджрд┐ рдЖрдкрдиреЗ supportInterfaceOrientations рдФрд░ shouldAutorotate рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ iPad рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдФрд░ iPhone рдкрд░ рд╕рднреА рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди PortraitUpsideDown
- рдирдпрд╛ рдкрд╕рдВрджреАрджрд╛рдЗрдВрдЯрд░рдлреЗрд╕ рдСрд░рд┐рдПрдВрдЯреЗрд╢рди рдлрд╝реЛрд░рдкрд░реНрд╕реЗрдВрдЯреЗрд╢рди рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкрд╕рдВрджреАрджрд╛ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬрдм рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ
- shouldAutoRotateToInterfaceOrientation: рдЕрдм iOS 6 рдореЗрдВ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА iOS рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдпреЗ рдмрджрд▓рд╛рд╡ рд╣реИрдВред рдпрд╣ рдХрджрдо Apple рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдХреНрд░рд┐рдп рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХрдВрдЯреЗрдирд░ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╕реНрдХреНрд░реАрди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред
рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ Apple рдХреЗ рдкреНрд░рдореБрдЦ рд╡рд┐рдЪрд╛рд░ (рдбрдмреНрд▓реНрдпреВрдбрдмреНрд▓реНрдпреВрдбреАрд╕реА 2012 рд╕реЗ рд╕рддреНрд░ 236) рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
- рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рд╕рднреА рд╕рдВрднрд╡ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдмрд╛рд▓ рдирд┐рдпрдВрддреНрд░рдХ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдлреНрд░реЗрдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдЖрд╡реЗрджрди рд╕рдорд░реНрдерд┐рдд рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдХрд╛рд░ (Info.plist рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ: supportInterfaceOrientationsForWindia :) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдЬрдм рдореЛрдбрд╝, рдХреЗрд╡рд▓ рд░реВрдЯ рдпрд╛ рд╢реАрд░реНрд╖ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдирд┐рдпрдВрддреНрд░рдХ рдорддрджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛
рдЖрдИрдУрдПрд╕ 5 рдФрд░ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдкреНрдкрд▓ рдЖрдИрдУрдПрд╕ 6 рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ:
- рд░реВрдЯ рдпрд╛ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╕реНрдХреНрд░реАрди рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдХреА рдкреВрд░реА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
- рдмрд╛рд▓ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреНрдпрд╛ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдЖрдИрдУрдПрд╕ 6 рдореЗрдВ рдПрдХ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП (рдЕрдзрд┐рдорд╛рдирддрдГ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде) рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЕрдВрдд рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдШреБрдорд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ? рдирдИ
рд╕рдорд░реНрдерд┐рдд InterfaceOrientations /
shouldAutorotate рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ
shouldAutorotateToInterfaceOrientation рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЗрди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд░реВрдЯ рдФрд░ рд╢реАрд░реНрд╖-рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ
рдмрдЪреЗрдЧреА ред рдХрдВрдЯреЗрдирд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд░рд╛рдп рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
1. рд╢реНрд░реЗрдгреАредрд╢реНрд░реЗрдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирдП рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡реЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рд╢реАрд░реНрд╖ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рд╕реЗ рдкреВрдЫрддрд╛рдЫ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, UINavigationController рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
@implementation UINavigationController (RotationIOS6) -(BOOL)shouldAutorotate { return [self.topViewController shouldAutorotate]; } -(NSUInteger)supportedInterfaceOrientations { return [self.topViewController supportedInterfaceOrientations]; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return [self.topViewController preferredInterfaceOrientationForPresentation]; } @end
2. рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдоредрдкреИрд░рд╛рдЧреНрд░рд╛рдл 1 рдХреЗ рд╕рдорд╛рди рд╣реА рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди UINavigationController рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ - рдЬрдм рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╕рднреА UINavigationControllers рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
// CustomNavigationController.h @interface CustomNavigationController : UINavigationController @end
// CustomNavigationController.m #import "CustomNavigationController.h" @implementation CustomNavigationController -(BOOL)shouldAutorotate { return [self.topViewController shouldAutorotate]; } -(NSUInteger)supportedInterfaceOrientations { return [self.topViewController supportedInterfaceOrientations]; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return [self.topViewController preferredInterfaceOrientationForPresentation]; } @end
3. рд╡рд┐рдзрд┐ рд╕реНрд╡рд┐рдЬрд╝рд▓рд┐рдВрдЧредрд░рдирдЯрд╛рдЗрдо рдкреНрд░реЗрдорд┐рдпреЛрдВ рдФрд░ рдХрдЯреНрдЯрд░ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП -
рд╕реНрд╡рд┐рдЬрд╝рд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ
рд╣реБрдП , рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдкрд░рд┐рдЪрд┐рдд рддрд░реАрдХреЗ рдХреА рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
aAutorotateToInterfaceOrientation:ред(
рдпрд╣рд╛рдВ рд╕реЗ рд▓рд┐рдпрд╛
рдЧрдпрд╛ рдХреЛрдб)
@implementation AppDelegate void SwapMethodImplementations(Class cls, SEL left_sel, SEL right_sel) { Method leftMethod = class_getInstanceMethod(cls, left_sel); Method rightMethod = class_getInstanceMethod(cls, right_sel); method_exchangeImplementations(leftMethod, rightMethod); } + (void)initialize { if (self == [AppDelegate class]) { #ifdef __IPHONE_6_0 SwapMethodImplementations([UIViewController class], @selector(supportedInterfaceOrientations), @selector(sp_supportedInterfaceOrientations)); SwapMethodImplementations([UIViewController class], @selector(shouldAutorotate), @selector(sp_shouldAutorotate)); #endif } } @end @implementation UIViewController (iOS6Autorotation) #ifdef __IPHONE_6_0 - (BOOL)sp_shouldAutorotate { BOOL shouldAutorotate = YES; if ([self respondsToSelector:@selector(shouldAutorotateToInterfaceOrientation:)]) { NSUInteger mask = 0; if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortrait]) { mask |= UIInterfaceOrientationMaskPortrait; } if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft]) { mask |= UIInterfaceOrientationMaskLandscapeLeft; } if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight]) { mask |= UIInterfaceOrientationMaskLandscapeRight; } if ([self shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortraitUpsideDown]) { mask |= UIInterfaceOrientationMaskPortraitUpsideDown; } if (mask == 0) {
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореМрдЬреВрджрд╛ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА - рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдЬрд╛рджреВ рдЯреНрд░рд┐рдХ рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдЖрдХрд░реНрд╖рдХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ,
рдпрд╣ рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИ (рдкрддрд╛ рд▓рдЧрд╛рдПрдБ рдХрд┐ рдХреНрдпреЛрдВ) ред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддреБрдд рд╕рд╛рдордЧреНрд░реА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рдмрд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ - рд╕рдордп :)
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ: