无法在iOS7中显示模式ViewController
我试图显示系统定义的视图控制器(MFMailComposeViewController,TWTweetComposeViewController等)作为一个模式的观点。
但是这些viewcontrollers不会出现在iOS 7(这些运行在iOS5,iOS6)。
我创build的ViewController出现在iOS7(ex.HogeViewController)中。
我不调用presentViewController:animated:completion
在viewDidLoad
或viewWillAppear
presentViewController:animated:completion
。
有人有想法吗?
控制台日志:
init Error Domain = NSCocoaErrorDomain Code = 4097“操作无法完成(Cocoa error 4097.)”
要么
_serviceViewControllerReady:error:Error Domain = NSCocoaErrorDomain Code = 4097“The operation could not be completed。(Cocoa error 4097.)”
要么
不平衡呼叫开始/结束外观转换。
TWTweetComposeViewController(不会出现)
TWTweetComposeViewController *viewController = [[TWTweetComposeViewController alloc]init]; viewController.completionHandler = ^(TWTweetComposeViewControllerResult result){ NSLog(@"Result : %d",result); }; [self presentViewController:viewController animated:YES completion:NULL];
日志
结果: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); }]; }
日志
_serviceViewControllerReady:错误:错误域= NSCocoaErrorDomain代码= 4097“操作无法完成。(cocoa错误4097.)”不平衡调用开始/结束外观转换。 错误:(空),结果:0
原来这个问题只在定制UIBarButton的时候出现。 如果我们在iPhone 5s上运行的32位应用程序中使用以下内容,则存在以下问题:
[[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0, 1.0) forBarMetrics:UIBarMetricsDefault];
离开这条线可以解决这个问题。 我们已经提交了一个雷达。
如果在项目设置中没有编译64位(arm64),这是一个问题。 虽然这可能并不总是一些人的select,因为目前谷歌分析不支持64位设备。
您可能能够避免一些子类的这个问题。 我有同样的问题,在我的情况下,罪魁祸首是:
[[UISearchBar appearance] setSearchTextPositionAdjustment:UIOffsetMake(15.0f, 0.0f)];
我已经使用UISearchBar的子类,所以我改变了:
[[KA_SearchBar appearance] setSearchTextPositionAdjustment:UIOffsetMake(15.0f, 0.0f)];
这为我解决了这个问题。 只在iPhone 5s,iOS 7.0.3上testing。
我在相同的情况下获得相同的行为。 在我的情况下,原来是由于使用UITableView的“setSeparatorInset”外观select器造成的。 摆脱那固定的问题。 这看起来像苹果的结局肯定,但至less有一个解决方法。
这个问题显示有人有类似的问题,并在他们的情况下摆脱了UISearchBar外观select器固定它。 所以这些UIA外观select器中有些是错误的。
这篇文章帮助我find了解决类似问题的方法。 但是我的问题与标签栏无关,所以我想我会分享,如果有人遇到这个post:
点击表格单元格时,邮件模式打开,但会立即解散。 就我而言,这段代码引起了这个问题:
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont systemFontOfSize:17.0]];
我删除它,一切正常!
在我的情况下,下面的代码将导致在64位机器或模拟器相同的问题。 希望帮助某人遇到这个问题。
if ([UITableViewCell instancesRespondToSelector:@selector(setSeparatorInset:)]) { [[UITableViewCell appearance] setSeparatorInset:UIEdgeInsetsZero]; }
这个问题发生在iPad空气(64位),当应用程序不符合64架构。 我遇到的问题是每个UIAppearanceselect器尝试使用UIOffsetMake / UIOffsetZero不能正常工作! 例
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(1.0, 1.0) forBarMetrics:UIBarMetricsDefault];
要么
[[UITableViewCell appearance] setSeparatorInset:UIEdgeInsetsMake(0, 5, 0, 5)];
我认为它在苹果代码中的一个错误,我尝试了几件事情,但没有任何工作。 如果你可以评论你在UIAppearanceselect器中设置插入的地方,那么更好
当使用SLComposeViewController与使用64位或iPhone 5s模拟器的Facebook或Twitter共享时,我有同样的错误,然后我删除使用“外观,例如[UITableViewCell外观]或[UIBarButtonItem外观]的每一行代码,每一次运行都可以。
我更新了Xcode到5.1版本,现在它工作正常。
NSXPCConnectionInterrupted = 4097.我会让你的代码重试命令,因为错误看起来是暂时的。