Impossible d'afficher le ViewController modal dans iOS7

J'ai essayé d'afficher les controllers de vue définis par le système (MFMailComposeViewController, TWTweetComposeViewController, etc.) comme une vue modale.

Mais ces viewcontrollers n'apparaissent pas dans iOS 7 (ceux-ci fonctionnent dans iOS5, iOS6).

Les viewcontrollers créés par moi apparaissent dans iOS7 (ex.HogeViewController).

Je n'appelle pas presentViewController:animated:completion à viewDidLoad ou viewWillAppear .

Est-ce que quelqu'un a une idée?

Journaux de la console:

init Erreur Domain = NSCocoaErrorDomain Code = 4097 "L'opération n'a pas pu aboutir. (Erreur cacao 4097.)"

ou

_serviceViewControllerReady: erreur: Erreur Domain = NSCocoaErrorDomain Code = 4097 "L'opération n'a pas pu être terminée. (Erreur cacao 4097.)"

ou

Appels déséquilibrés pour commencer / terminer les transitions d'apparence pour.

TWTweetComposeViewController (n'apparaît pas)

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

Bûche

Résultat: 0

MFMailComposeViewController (apparaît un moment et rejeter bientôt)

 - (void)send:(NSSsortingng*)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); }]; } 

Bûche

_serviceViewControllerReady: erreur: Erreur Domain = NSCocoaErrorDomain Code = 4097 "L'opération n'a pas pu être terminée. (Cocoa error 4097.)" Appels déséquilibrés pour commencer / terminer les transitions d'apparence pour. erreur: (null), résultat: 0

Il s'avère que le problème n'apparaît que lors de la personnalisation de UIBarButtons. Si nous utilisons ce qui suit dans notre application 32 bits fonctionnant sur iPhone 5s, nous avons le problème:

 [[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0, 1.0) forBarMesortingcs:UIBarMesortingcsDefault]; 

Laissant cette ligne contourne le problème. Nous avons déposé un radar.

Ceci est un problème lorsque vous ne comstackz pas pour 64bit (arm64) dans les parameters de votre projet. Bien que cela ne soit pas toujours une option pour certaines personnes, Google Analytics ne prend actuellement pas en charge les appareils 64 bits.

Vous pouvez peut-être éviter ce problème avec certains sous-classs. J'avais le même problème, et dans mon cas le coupable était:

 [[UISearchBar appearance] setSearchTextPositionAdjustment:UIOffsetMake(15.0f, 0.0f)]; 

J'utilisais déjà une sous-class de UISearchBar de toute façon, donc j'ai changé cela pour:

 [[KA_SearchBar appearance] setSearchTextPositionAdjustment:UIOffsetMake(15.0f, 0.0f)]; 

Cela a résolu le problème pour moi. Seulement testé sur un iPhone 5s, iOS 7.0.3.

Je reçois le même comportement dans les mêmes situations. Dans mon cas, il s'est avéré être provoqué en utilisant le sélecteur d'apparence "setSeparatorInset" de UITableView. Se débarrasser de cela a réglé le problème. Cela ressemble à un bug sur la fin d'Apple à coup sûr, mais au less il existe une solution de contournement.

Cette question montre quelqu'un ayant un problème similaire et dans leur cas, se débarrasser d'un sélecteur d'apparence UISearchBar l'a corrigé. Il y a donc un problème avec certains de ces sélecteurs UIAppearance.

Ce message m'a aidé à find une solution à un problème similaire. Mais mon problème n'était pas lié à la barre d'tabs, donc je me suis dit que je partagerais si quelqu'un d'autre tombait sur ce post:

Le modal de courrier ouvert lors de l'exploitation d'une cellule de table, mais serait instantanément rejeté. Dans mon cas, ce code a causé le problème:

 [[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont systemFontOfSize:17.0]]; 

Je l'ai supprimé, et tout fonctionne!

Dans Mon cas, le code suivant entraînera le même problème sur une machine 64 bits ou un simulateur. J'espère avoir aidé quelqu'un à résoudre ce problème.

 if ([UITableViewCell instancesRespondToSelector:@selector(setSeparatorInset:)]) { [[UITableViewCell appearance] setSeparatorInset:UIEdgeInsetsZero]; } 

Ce problème se produit dans l'air de l'iPad (64 bits) lorsque l'application n'est pas conforme à l'architecture 64. Le problème que j'ai rencontré était que chaque sélecteur UIAppearance qui essaie d'utiliser UIOffsetMake / UIOffsetZero ne fonctionne pas correctement! Exemple

  [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(1.0, 1.0) forBarMesortingcs:UIBarMesortingcsDefault]; 

ou

  [[UITableViewCell appearance] setSeparatorInset:UIEdgeInsetsMake(0, 5, 0, 5)]; 

Je pense que c'est un bug dans le code Apple et j'ai essayé peu de choses mais rien ne fonctionne. Mieux si vous pouvez commenter les endroits où vous définissez SetInsets dans les sélecteurs UIAppearance

J'ai eu la même erreur quand utiliser SLComposeViewController pour partager avec Facebook ou Twitter en utilisant le simulateur de 64 bits ou un iPhone 5s, puis je supprime chaque ligne de code qui utilise "apparence, par exemple [apparence UITableViewCell] ou [apparence UIBarButtonItem], et chaque course ok.

J'ai mis à jour xcode à la version 5.1 et cela a fonctionné bien maintenant.

NSXPCConnectionInterrupted = 4097. Je voudrais que votre code réessaye la command car l'erreur semble être transitoire.