的iOS AppDelegate中添加supportedInterfaceOrientationsForWindow
问题描述:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
NSUInteger orientations = UIInterfaceOrientationMaskPortrait;
if (self.fullScreenVideoIsPlaying == YES)
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
else
{
if(self.window.rootViewController)
{
UIViewController *presentedViewController = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject];
orientations = [presentedViewController supportedInterfaceOrientations];
}
return orientations;
}
}
我试图改变屏幕的方向只有一个页面,我当我启动程序添加此功能,程序无法启动,给这个错误初始屏幕 错误:的iOS AppDelegate中添加supportedInterfaceOrientationsForWindow
2015-02-06 00:40:24.264 AppName[5002:1189245] -[SplashScreen viewControllers]: unrecognized selector sent to instance 0x14d510010
2015-02-06 00:40:24.266 AppName[5002:1189245] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SplashScreen viewControllers]: unrecognized selector sent to instance 0x14d510010'
*** First throw call stack:
(0x18269659c 0x192da00e4 0x18269d664 0x18269a418 0x18259eb6c 0x100098614 0x186ebc594 0x186ebc210 0x186ec548c 0x186ec4ee0 0x186ebc154 0x1870d45f0 0x1870d362c 0x1870d1dec 0x18a90d62c 0x18264ea28 0x18264db30 0x18264bd30 0x1825790a4 0x186eb33c8 0x186eae3c0 0x100102560 0x19340ea08)
libc++abi.dylib: terminating with uncaught exception of type NSException
任何想法??我该如何解决这个问题?
答
也许你想改变viewControllers
到childViewControllers
编辑1:对不起,我现在才发现,你认为你的rootViewController
是UINavigationViewController
。
这显然不是你可以从错误信息中看到的。它是类的SplashScreen
编辑2:我建议你做以下,并从那里
if(self.window.rootViewController && [self.window.rootViewController isKindOfClass:[UINavigationViewController class]])
{
UIViewController *presentedViewController = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject];
orientations = [presentedViewController supportedInterfaceOrientations];
}
return orientations;
谢谢你这段代码部分工作:)) – 2015-02-05 23:01:29