无法在iOS7中显示模态ViewController

Yu *_*ura 13 ios ios7

我试图将系统定义的viewcontrollers(MFMailComposeViewController,TWTweetComposeViewController等)显示为模态视图.

但是这些视图控制器不会出现在iOS 7中(这些在iOS5,iOS6中运行).

我创建的Viewcontrollers出现在iOS7(ex.HogeViewController)中.

我不叫presentViewController:animated:completionviewDidLoadviewWillAppear.

有人有想法吗?

控制台日志:

init Error Domain = NSCocoaErrorDomain Code = 4097"操作无法完成.(Cocoa error 4097.)"

要么

_serviceViewControllerReady:error:Error Domain = NSCocoaErrorDomain Code = 4097"操作无法完成.(Cocoa error 4097.)"

要么

对开始/结束外观转换的不平衡调用.

TWTweetComposeViewController(未出现)

TWTweetComposeViewController *viewController = [[TWTweetComposeViewController alloc]init];
viewController.completionHandler = ^(TWTweetComposeViewControllerResult result){
    NSLog(@"Result : %d",result);
};
[self presentViewController:viewController animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)

日志

结果:0

MFMailComposeViewController(出现片刻并很快解散)

- (void)send:(NSString*)email{
    if ([MFMailComposeViewController canSendMail]) {
        MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
        picker.mailComposeDelegate = self;

        NSArray *toRecipients = @[email];
        [picker setToRecipients:toRecipients];

        [picker setSubject:@"Subject"];
        [picker setMessageBody:@"Body" isHTML:NO];
        [self.navigationController presentViewController:picker animated:YES completion:NULL];
    }
}

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
    [self dismissViewControllerAnimated:YES completion:^{
        NSLog(@"error:%@,result:%d",error.description,result);
    }];
}
Run Code Online (Sandbox Code Playgroud)

日志

_serviceViewControllerReady:error:Error Domain = NSCocoaErrorDomain Code = 4097"操作无法完成.(Cocoa error 4097.)"不平衡调用开始/结束外观转换.错误:(空),结果:0

小智 24

事实证明,只有在自定义UIBarButtons时才会显示该问题.如果我们在iPhone 5s上运行的32位应用程序中使用以下内容,则会遇到以下问题:

[[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0, 1.0)
                                           forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

离开那条线可解决问题.我们已经提交了雷达.

  • 这是疯了,我为你在Apple的代码中发现错误而鼓掌. (5认同)

小智 7

当您在项目设置中不编译64位(arm64)时,这是一个问题.虽然这对某些人来说可能并不总是一种选择,因为目前Google Analytics不支持64位设备.