来自TWTweetComposeViewController
的完整推文后,我的应用锁定了。走出主屏幕并回来似乎解决了这个问题,时钟仍然响起,但没有触摸注册到我的任何视图/控件。
我的应用程序中必须发现一些奇怪的事情,我制作了一个新的实用程序 - 应用程序 - 模板项目,并将其链接到Twitter.framework
,并重新定义了信息UIButton
的{{1}}方法:
IBAction
取消后(有趣地需要2次点击),可以通过点击“i”将其恢复,但提交后,“i”在响应应用程序之前无响应。
有没有人成功使用过这个?还是我公然遗失了什么?
答案 0 :(得分:24)
这里的问题是你提出了一个模态视图控制器(twitter视图控制器是模态的);但是,您的完成处理程序在完成时不会解除模态视图控制器。这使得Twitter控制器可以捕获屏幕上的所有触摸,从而阻止您的应用正常运行。
您需要确保添加[self dismissModalViewControllerAnimated:YES];到你的完成处理程序。
这样的事情:
(IBAction)showInfo:(id)sender
{
TWTweetComposeViewController *twt = [[TWTweetComposeViewController alloc] init];
[twt setInitialText:@"some garbage"];
[twt addURL:[NSURL URLWithString:@"http://google.com"]];
twt.completionHandler = ^(TWTweetComposeViewControllerResult result) {
switch (result) {
case TWTweetComposeViewControllerResultCancelled:
break;
case TWTweetComposeViewControllerResultDone:
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
};
[self presentModalViewController:twt animated:YES];
};
答案 1 :(得分:0)
在completionHandler
中,发布twt
。
twt.completionHandler = ^(TWTweetComposeViewControllerResult r) {
NSLog(@"it happened: %d",r);
[twt release]; // Unless using ARC
};
应用程序没有冻结,但TWTweetComposeView仍然存在,捕获所有触摸。