gpt4 book ai didi

ios - 尝试对导航 Controller 进行子类化,以便在 iOS 中的横向模式下使用单独的 .xib 文件加载外部 View Controller

转载 作者:行者123 更新时间:2023-11-29 03:41:07 25 4
gpt4 key购买 nike

我有一个使用 Storyboard创建的 iPad 应用程序。我创建了另一个单独的 viewController,它是使用单独的 .xib 文件创建的。我需要从主应用程序调用此 viewController,然后关闭以返回主应用程序。到目前为止我能够做到这一点。我的问题是,因为我使用导航 Controller 来调用此辅助 View Controller ,所以我无法在横向模式下加载此 View Controller 。我只能以纵向模式加载它。基于浏览这个论坛以及我所做的任何研究,我了解到我需要对导航 Controller 进行子类化,然后这就是我能够在横向模式下加载此辅助 View Controller 的方式。

我在辅助 View Controller (NextViewController)中包含了以下方法,但没有效果:

-(BOOL)shouldAutorotate
{
return YES;
}

-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}

下面是调用 viewController (MainViewController) 中的代码,它调用 NextViewController,而 NextViewController 又以纵向模式显示,而不是所需的横向模式:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

_nextView = [[NextLandscapeViewController alloc] initWithNibName:@"NextLandscapeViewController" bundle:nil];
[_nextView setDelegate:(id)self];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:_nextView];
[self presentViewController:navigationController animated:YES completion:nil];

}

正如我所指出的,我需要的解决方案是对导航 Controller 进行子类化,但说实话,我以前从未这样做过,也不知道该怎么做。有人可以告诉我如何执行此操作,以便我可以调用 NextViewController 并使其以横向模式显示吗?

提前感谢所有回复的人。

最佳答案

对于导航 Controller 的子类进行定向,您可以尝试以下代码(作为示例):

// .h - file
@interface MyNavigationController : UINavigationController

@end

// .m - file
#import "MyNavigationController.h"

@implementation MyNavigationController

-(BOOL)shouldAutorotate
{
return [self.topViewController shouldAutorotate];
}

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

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

@end

更新:(此代码适用于ios6)

关于ios - 尝试对导航 Controller 进行子类化,以便在 iOS 中的横向模式下使用单独的 .xib 文件加载外部 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18426356/

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