gpt4 book ai didi

ios - Twitter completionHandler 在成功时卡住应用程序

转载 作者:技术小花猫 更新时间:2023-10-29 10:44:16 26 4
gpt4 key购买 nike

TWTweetComposeViewController 完成推文后,我的应用程序锁定了。转到主屏幕并返回似乎可以解决此问题,时钟仍在滴答作响,但我的任何 View /控件都没有任何触摸记录。

认为我的应用程序中一定发生了一些奇怪的事情,我创建了一个新的实用程序-应用程序模板项目,将其链接到 Twitter.framework,并重新定义了信息 UIButtonIBAction 方法:

- (IBAction)showInfo:(id)sender
{
TWTweetComposeViewController *twt = [[TWTweetComposeViewController alloc] init];
[twt setInitialText:@"some garbage"];
[twt addURL:[NSURL URLWithString:@"http://google.com"]];
twt.completionHandler = ^(TWTweetComposeViewControllerResult r) { NSLog(@"it happened: %d",r); };
[self presentViewController:twt animated:YES completion:NULL];
[twt release];
}

取消后(有趣的是需要轻按 2 次),可以通过轻按“i”将其恢复,但在提交后,“i”在应用程序后台运行之前没有响应。

有人用过吗?还是我明显遗漏了什么?

最佳答案

这里的问题是你呈现的是模态视图 Controller (twitter View Controller 是模态的);但是,您的完成处理程序不会在完成时关闭模态视图 Controller 。这会让 Twitter Controller 捕获屏幕上的所有触摸,从而阻止您的应用正常运行。

您需要确保添加 [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];

};

关于ios - Twitter completionHandler 在成功时卡住应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8362069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com