gpt4 book ai didi

iphone - 如何让特定的 View Controller 同时支持横向和纵向

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:18:13 24 4
gpt4 key购买 nike

我的应用程序是支持 iOS 6 的基于导航的应用程序。除了 View Controller 外,其他所有应用程序都只支持纵向模式。特定的 View Controller 必须单独支持横向和纵向。

我搜索了很多关于这个的问题,但没有一个答案适合我。如果有人知道,请指导我

我在 Project -> Targets -> Summary -> Supported orientation 中将方向设置为 Portait

最佳答案

首先,您应该使用 UIViewController documentation 中提供的适用于 iOS6 的方法如果您正在为 iOS6 制作应用程序。像 shouldAutorotateToInterfaceOrientation 这样的方向方法在 iOS6 中被弃用,iOS6 的替代方法是 shouldAutoRotate。如果您的应用也支持 iOS5,您应该只使用旧方法。

其次,如果您在应用程序中使用 UINavigationcontroller 并且您需要具有不同的界面方向,那么 navigationController 可能会弄乱应用程序中的界面方向。可能的解决方案(对我有用)是实现自定义 UINavigationController 并覆盖该自定义 UINavigationController 类中的界面方向方法,这将使您的 viewControllers 根据您的方向旋转设置是因为您的 Controller 是从 UINavigationController 推送的。不要忘记在您的特定 viewController 中也添加这些方法。

CustomNavigationController.h

@interface CustomNavigationController : UINavigationController
@end

CustomNavigationController.m

@implementation CustomNavigationController

//overriding shouldRotate method for working in navController
-(BOOL)shouldAutorotate
{
return [self.topViewController shouldAutorotate];
}

-(NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [self.topViewController preferredInterfaceOrientationForPresentation];
}

关于iphone - 如何让特定的 View Controller 同时支持横向和纵向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15808532/

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