_viewControllerForSupportedInterfaceOrientationsWithDismissCheck无法识别的select器

我在最后一个视图控制器(portait)上呈现一个图像,在屏幕上的所有点,如果我打开设备的风景,然后landscaperight,它仍然是好的,但是;

如果我然后使用SLComposeViewController(Twitter的发布),一旦我驳回(取消或发布的东西),然后旋转手机的风景,应用程序崩溃,出现以下错误;

*由于未捕获exception“NSInvalidArgumentException”,原因:' – [_ UIAppearanceCustomizableClassInfo _viewControllerForSupportedInterfaceOrientationsWithDismissCheck:]:无法识别的select器发送到实例0x1b9eefd0'

虽然我不使用横向模式,但是当我将其转换为横向模式时,应用程序确实会转向,但这不是主要问题,问题在于应用程序崩溃。

虽然我知道如果用户在发布到Twitter之后没有打开电话,那就没有问题了,但这并不理想,而且我确定你也同意这样做。

关于定向支持,AppDelegate.m有这个;

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ return UIInterfaceOrientationMaskLandscape|UIInterfaceOrientationMaskPortrait |UIInterfaceOrientationMaskPortraitUpsideDown; } 

而碰撞的控制器有这个;

 -(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { NSString *viewControllerClassName = [NSString stringWithUTF8String:object_getClassName(window.rootViewController)]; if ([viewControllerClassName isEqualToString:@"_UIAlertShimPresentingViewController"]) { return UIInterfaceOrientationMaskPortrait; } else { return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight; } } -(BOOL)shouldAutorotate{ return NO; } 

当您从UIActionSheet中呈现Modal View Controller并且您驳回了Modal View Controller并旋转屏幕时,我也看到了iOS 8中类似的崩溃。

我认为这与展示模态视图控制器有关。 上述的延迟模式视图控制器的演示固定工作,

而不是从actionSheet中调用现有的Modal View控制器:clickedButtonAtIndex:UIActionSheet的委托方法,从“actionSheet didDismissWithButtonIndex:”调用,并为我工作。

我在iOS8上看到了类似的问题,应用程序崩溃后,模式视图控制器被解散,电话随后旋转。

在我的情况下,模态视图控制器是从actionSheet:clickedButtonAtIndex:方法中的操作表呈现。 我find的解决方法是将提出模式视图控制器的代码移出该方法到一个新的方法,并调用它asynchronous,即[self performSelector:@selector(presentModalViewController) withObject:nil afterDelay:1.0];

不知道为什么会有所作为,但它确实让模板视图控制器出现之前动作表animation,这可能会有一些影响。