Тъй като работя с поддръжка на iOS приложения само Portrait Orientation
. Но получавам някакъв проблем, свързан с ориентацията.
Приложението ми поддържа само портретна ориентация
когато родителят ми P1.view е насочен с помощта на навигация, той е в портретен режим, това е добре. Сега от P1.view преглеждам дъщерния си изглед C1.view
Сега съм в childview C1.view и оттам с помощта на делегат се обаждам
-(void)imagePickerController:(UIImagePickerController *)избор
[self.delegate openCamera]
;//извикан от C1.view-(void)openCamera //declared in P1.view { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.allowsEditing = NO; picker.sourceType = UIImagePickerControllerSourceTypeCamera;> [self presentModalViewController:picker animated:YES]; }
Сега, когато заснемам снимка в пейзажен режим и отхвърлям този presentModalViewController, изгледът ми се появява в пейзажен режим вместо в портретен режим.
- (BOOL)shouldAutorotate { return YES; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown); } - (NSUInteger)supportedInterfaceOrientations { return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); }
Тези методи се дефинират както в контролера на изгледа (P1 & C1), така и се извикват при отхвърляне на modelview, но моят контролер на изглед остава в пейзаж, което не трябва да се случва.
Този код работи добре в iOS6, но не и в iOS7