gpt4 book ai didi

iphone - 更改 UIWindow subview 时,未设置方向

转载 作者:行者123 更新时间:2023-12-03 19:23:04 29 4
gpt4 key购买 nike

如果将 View 添加到窗口,即使设备处于横向,方向也会设置为纵向。如果 View 添加到应用程序委托(delegate) application:didFinishLaunchingWithOptions: 方法中,则它可以正常工作。但如果稍后添加 View ,则不会。

举个例子,我有一个切换 View 的例程。最简单的形式是:

- (void)switchToNewViewController:(UIViewController *)newViewController { 
if ([[window subviews]count]!=0) {
[[[window subviews]objectAtIndex:0] removeFromSuperview];
}
[window addSubview:newViewController.view];
}

如果这是从 didFinishLaunching 中调用的,则方向是正确的。如果不是,则方向为纵向。

最简单的情况是在 didFinishLaunching 中我有以下两行

// The following line works
[self switchToNewViewController:fullScreenViewController];

// The following line which delays the method call until later results
// in incorrect orientation
[self performSelector:@selector(switchToNewViewController:) withObject:fullScreenViewController afterDelay:0.1];

有没有办法让 View 具有正确的方向?

最佳答案

确保 View Controller 中的 shouldAutorotateToInterfaceOrientation 具有正确的逻辑

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES; //this supports all orientations
}

如果您在 InterfaceBuilder 中链接内容,还请确保 View 和 View Controller 都配置为您喜欢的初始方向。 (右上角有一个小箭头可以旋转 View 和 View Controller )

如果您仍然遇到问题,您是否使用 UINavigationController 或类似的?如果您想支持肖像以外的其他功能,则需要对 UINavigationController 进行子类化并实现 shouldAutorotateToInterfaceOrientation。

关于iphone - 更改 UIWindow subview 时,未设置方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720230/

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