【发布时间】:2011-11-18 13:40:13
【问题描述】:
我已经制作了一个 NavigationController 结构。 FirstViewController 是 RootViewController,SecondViewController 是下一个 SubViewController。每个 ViewController shouldAutorotateToInterfaceOrientation 是不同的(参考以下代码)。 FirstViewController 只有纵向可用。 SecondViewController 都支持 Portrait 和 LandscapeMode。
在FirstViewController 中某按钮触摸后,调用pushHandler。下一个 SecondViewController 是推送的。 在将横向旋转回 FirstViewController 后的 SecondViewController 中,该方向太横向了。
但是,我实现的每个 ViewController 方向都不同。但是每个 ViewController 都不能独立设置方向。为什么会发生?
如何才能让viewcontroller每个方向都可以独立设置呢?
如果 SecondViewController 改变了 LandscapeMode 的方向。我想回到FirstViewController 还是portraitMode(永远保持portraitState 不受影响)。 如何以编程方式实现?
FirstViewController *rootViewController = [FirstViewController alloc] init];
UINavigationController *MyNavigationController = [UINavigationController alloc] initWithRootViewController:rootViewController]];
//FirstViewController
- (void)pushHandler
{
SecondViewController *subViewController = [SecondViewController alloc] init];
[[self navigationController] pushViewController:subViewController animated:YES];
[subViewController release];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
//SecondViewController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
【问题讨论】:
标签: iphone uinavigationcontroller orientation