gpt4 book ai didi

ipad - UIDeviceOrientationDidChangeNotification 未触发?

转载 作者:行者123 更新时间:2023-12-02 12:20:51 26 4
gpt4 key购买 nike

我根本无法触发UIDeviceOrientationDidChangeNotification

我有我的AppDelegate,这里我添加一个PolyOrientationViewController,它有一个UInavigationController,可以推送一个VerticalNavigationController和一个Horizo​​ntalViewController 取决于 iPad 的方向。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

ISPolyOrientationTableViewController *pvc = [[ISPolyOrientationTableViewController alloc] init];
[window addSubview:pvc.view];
[pvc release];
[window makeKeyAndVisible];

return YES;
}

多边形、垂直和水平 View Controller 实现:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}

PolyVC,它是最顶层的ViewController,它有以下方法:

- (void)viewDidLoad {

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:)
name:UIDeviceOrientationDidChangeNotification
object:nil];

[super viewDidLoad];
}

它具有相关功能:

- (void)didRotate:(NSNotification *)notification {
//push the related controller
}

实例化 PolyVC 后,将调用 didRotate: 方法,我认为从这里开始,它只是停止生成 UIDeviceOrientationDidChangeNotification

我在 didRotate: 方法中有一个断点,我已将应用程序加载到 iPad 上以确保它不是模拟器的东西,我制作了一个新的 xcode splitViewController 项目,测试了旋转工作了,删除了代码并粘贴了我自己的代码,我检查了方向锁定按钮,我尝试实现 -(BOOL) ShouldAutoRotate… 我没有被调用,我检查了 info.plist 指定该应用程序支持所有方向,我尝试复制粘贴我发现的工作示例中的每一段通知代码,以消除拼写错误。

我在这里完全束手无策了:)有什么我可以做的,某种实现 UIViewController 的方法,不使用 IB,将 ViewController 嵌套在 ViewController 中(PolyViewController 拥有 UINavigationController,它拥有 Vertical 和 Horizo​​ntalViewController)或任何可以做到的事情让应用程序完全忽略界面方向通知?

希望有人能指出我的错误:)预先感谢您。

最佳答案

Extracted from the documentation ,尝试一下是否有帮助:

You get the current orientation using the orientation property or receive change notifications by registering for the UIDeviceOrientationDidChangeNotification notification. Before using either of these techniques to get orientation data, you must enable data delivery using the beginGeneratingDeviceOrientationNotifications method. When you no longer need to track the device orientation, call the endGeneratingDeviceOrientationNotifications method to disable the delivery of notifications.

关于ipad - UIDeviceOrientationDidChangeNotification 未触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com