UIViewController父级在模态视图被解除后不旋转

时间:2013-06-04 15:20:10

标签: ipad view controller modal-dialog

我在iPad上有一个UIViewController,我正在以模态显示。

然而,在解除它之后,显示它的视图控制器不会改变方向,并且就像底层视图控制器没有改变一样,除非设备来回旋转。

我在模态视图控制器中使用这些方法:

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation {
  [self updateUI];
    return YES;
}

- (BOOL)shouldAutorotate {
  [self updateUI];
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations{
  return UIInterfaceOrientationMaskAll;
}

-(void) updateUI{

}

底层的UINavigationController代码(一旦模态视图控制器被解除,它就不能正常改变):

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation {
  [self adjustUIForOrientation:interfaceOrientation];
    return YES;
}

- (BOOL)shouldAutorotate {
  [self adjustUIForOrientation:[self preferredInterfaceOrientationForPresentation]];
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations{
  return UIInterfaceOrientationMaskAll;
}


- (void) adjustUIForOrientation: (UIInterfaceOrientation)interfaceOrientation {
  if(UIDeviceOrientationIsPortrait(interfaceOrientation)) {
    [_landscapeTemplate hide];
    [_portraitTemplate show];
    _activeTemplate = _portraitTemplate;
  } else {
    [_portraitTemplate hide];
    [_landscapeTemplate show];
    _activeTemplate = _landscapeTemplate;
  }
}

-(IBAction) signInButtonTouched: (id) sender{
  if (![Session shared].loggedInUser){
    UserProfileLoginViewController *userProfileLoginVC = [[[UserProfileLoginViewController alloc] initWithNibName:@"UserProfileLoginViewController" bundle:nil] autorelease];
    userProfileLoginVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    self.modalPresentationStyle = UIModalPresentationCurrentContext;
    //self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentViewController:userProfileLoginVC animated:YES completion:nil];

     // [self pushViewController:userProfileLoginVC animated:YES];
    [userProfileLoginVC.emailTextField becomeFirstResponder];
  }
  else [[Session shared] explicitEnd];
}

有没有办法让这项工作?基本上看来,呈现模态视图控制器的视图控制器没有将旋转调用转发给它自己。

0 个答案:

没有答案