OStack程序员社区-中国程序员成长平台

标题: iphone - navigationController 推送 ViewControllers 不会自动旋转 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 16:39
标题: iphone - navigationController 推送 ViewControllers 不会自动旋转

我很难让导航 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-推荐答案


您正在使用 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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4