无法呈现视图控制器 (SLComposeViewController)
Posted
技术标签:
【中文标题】无法呈现视图控制器 (SLComposeViewController)【英文标题】:Unable to present View Controller (SLComposeViewController) 【发布时间】:2013-01-06 03:48:20 【问题描述】:我正在尝试在 ios6 上为 iPad 应用程序集成 Facebook,但遇到了问题:
当以下代码执行时,屏幕逐渐变暗(就像出现模态控制器时一样),但随后什么也没有发生。没有 Facebook 表格,什么都没有 - 甚至无法点击当前视图,好像 Facebook 表格被隐藏了一样。
知道为什么会发生这种情况吗?我尝试使用 UINavigationController 的根视图控制器和可见/顶部控制器来呈现工作表,但都是一样的。
顺便说一句,下面的代码在 AppDelegate 中。该方法也被调用以响应按钮单击。
谢谢, 尼科斯。
-(BOOL)socialPost:(UIImage*)image initialText:(NSString*)initialText url:(NSURL*)url
if (![self canSocialPost])
return NO;
SLComposeViewController* SLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
if (SLComposerSheet == nil)
return NO;
[SLComposerSheet setInitialText:initialText];
[SLComposerSheet addImage:image];
[SLComposerSheet addURL:url];
[SLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result)
switch (result)
case SLComposeViewControllerResultCancelled:
DLog(@"Social post Canceled");
break;
case SLComposeViewControllerResultDone:
DLog(@"Social post Sucessful");
break;
default:
break;
];
[[self window].rootViewController presentViewController:SLComposerSheet animated:YES completion:nil];
return YES;
【问题讨论】:
您可以发布任何其他可能相关的代码吗?我刚刚复制/粘贴了您的代码,它按预期执行。 【参考方案1】:0x7fffffff 是对的 - 问题实际上出在其他地方:
我将嵌套视图添加到“根视图”,但也没有将它们的视图控制器添加为子视图,即
我在做:
[_ContainerView addSubview:_ViewControllers[tabId].view];
没有
[self addChildViewController:_ViewControllers[tabId]];
现已修复 - 感谢您测试此 0x7fffffff。
【讨论】:
我遇到了和你一样的问题。这个答案也解决了我的问题。以上是关于无法呈现视图控制器 (SLComposeViewController)的主要内容,如果未能解决你的问题,请参考以下文章
无法呈现视图控制器 (SLComposeViewController)