我很难让导航 Controller 正确自动旋转。显示将在初始 View ( Root View Controller )上自动旋转,但不会在任何被推送的新 View 上旋转。它保持初始 View 在推送时的 View 方向。
在我的 App Delegate 中,我有一个导航 Controller 并推送它的 View 。
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
在 Root View Controller 中,我允许所有方向,并将其他 View 推送到 Controller 的堆栈中。
- (BOOL)shouldAutorotateToInterfaceOrientationUIInterfaceOrientation)interfaceOrientation {
return YES;
}
ParkingListController *parklc = [[ParkingListController alloc] autorelease];
[[self navigationController] pushViewController:parklc animated:YES];
我看到“是的,我们应该!”在新 View 加载时记录一次,但在设备实际旋转时不会触发。
- (BOOL)shouldAutorotateToInterfaceOrientationUIInterfaceOrientation)interfaceOrientation
{
NSLog(@"Yes, we should!");
return YES;
}
我没有任何初始化覆盖,并且 info.plist 列出了所有四个方向。
我错过了什么?谢谢!
编辑 2011-07-07:
奇怪的是,当您从表格 View 中选择一个项目时, map View 会自动旋转!为什么它来自的table view不能旋转?
Best Answer-推荐答案 strong>
您正在使用 UINavigationController,它应该返回 true 以进行旋转。请扩展 UINavigationController 并使用 Interface builder 中的扩展类。
#import <Foundation/Foundation.h>
@interface IRUINavigationController : UINavigationController {
}
@end
#import "IRUINavigationController.h"
@implementation IRUINavigationController
- (void)willRotateToInterfaceOrientationUIInterfaceOrientation)toInterfaceOrientation durationNSTimeInterval)duration{
[self.visibleViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
- (BOOL)shouldAutorotateToInterfaceOrientationUIInterfaceOrientation)interfaceOrientation {
return YES;
}
@end
我用过很多项目,而且效果很好。
关于iphone - navigationController 推送 ViewControllers 不会自动旋转,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/6601983/
|