【问题标题】:iPhone why is not showing the tweet sending screen after sending the smsiPhone为什么在发送短信后不显示推文发送屏幕
【发布时间】:2012-02-10 08:56:35
【问题描述】:

在我的 iOS 应用程序中,我尝试在发送短信后发送推文。这里的问题是它显示了短信屏幕并点击发送按钮然后控制进入我的“发送推文”方法但它没有显示“推文”发送屏幕。

当我调用我的“发送推文”方法而不调用短信发送功能时,它可以工作并显示推文发送屏幕。但是为什么在发送短信后不显示推文发送屏幕。

//================================================================================= 
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result {
    //================================================================================= 
    switch (result)
    {

        case MessageComposeResultCancelled:
            NSLog(@"Result: canceled");
            break;
        case MessageComposeResultSent:
            NSLog(@"Result: sent");
            [self logSMSSentInfo];
            break;
        case MessageComposeResultFailed:
            NSLog(@"Result: failed");
            break;
        default:
            NSLog(@"Result: not sent");
            break;
    }

   [self dismissModalViewControllerAnimated:YES];

   [self performSelectorOnMainThread:@selector(SendTweet) withObject:nil waitUntilDone:NO];


}

// this function is to send tweet
//============================================
-(void)sendTweet:(NSString*)inTweetAccountInfo{
//============================================

    if ([TWTweetComposeViewController canSendTweet])
     {
     NSString *aTweetMsg;
        }
}

【问题讨论】:

  • 您是否尝试将SendTweet 放入MessageComposeResultSent 案例中?或者就在dismissModalViewControllerAnimated之前。
  • @antf :感谢您的回复并尝试了您的方法,但即使现在也无法正常工作
  • 自我呈现模态?
  • @TerenteIonutAlexandru : 是的 [self dismissModalViewControllerAnimated:YES];
  • 当我使用 afterDelay 参数时,它会显示推文屏幕,如下所示 [self performSelector:@selector(SendTweet) withObject:nil afterDelay:1.0];效果如何

标签: ios iphone ios5


【解决方案1】:

你想在当前对象的主线程上执行的问题,但是一旦你调用[selfdismissModalViewControllerAnimated:YES],你的对象就会被释放;

所以你需要将 sendTweet 方法传递给一个活的对象。

编辑:

您可以实现一个委托协议,并告诉将您的 modalView 呈现给 sendTweet 的 viewController(发送推文方法必须在 parentViewController 中)。

【讨论】:

  • 感谢您的回复..请告诉我应该如何调用该方法
【解决方案2】:

您为什么不使用通知中心来代替performSelectorOnMainThread,如here 所述。如果您需要有关通知中心的更多详细信息,您可能希望查看here。我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-07-19
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多