所以我有一个视图,当界面方向更改为横向时,我会以模态方式呈现。但是,当方向返回到纵向并且模态视图自行消失时,初始视图中的工作台视图将保持横向(此表视图必须仅为纵向)
以下是代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ((interfaceOrientation == UIInterfaceOrientationPortrait) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight) );
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if ((toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)) {
[self performSegueWithIdentifier:@"showCatChart" sender:self];
}
if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
[self refreshTableView];
}
}
我试图刷新tableview,但这并没有让它再次成像... 这可能来自视图层次...... NavigationController-> tableView(仅限肖像) - > tableview-> landscapeViewModalController
答案 0 :(得分:0)
在appdelegate中使用以下内容。
[self.window addsubview:viewcontroller];
仅此一项就可以解决您的定位问题。
答案 1 :(得分:0)
使用iOS 6,您需要实现以下功能:
- (BOOL)shouldAutoRotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
在AppDelegate中,您需要更改以下内容:
[self.window addSubview:viewController.view];
到
[self.window setRootViewController:viewController];
另外,如果您想支持以前版本的iOS,请保留当前代码。