2012-02-10 19 views
0

私のiOSアプリでは、一度SMSを送信するとTweetを送信しようとしています。何がここの問題は、それはSMSの画面を表示し、送信ボタンをタップしてコントロールが私の "送信Tweet"メソッドに来るが、それは "Tweet"送信画面を表示していないです。iPhoneなぜSMSを送信した後にツイートの送信画面が表示されない

sms送信機能を呼び出さずに私の "Send Tweet"メソッドを呼び出すと、それは動作して、送信SMSを送信した後にツイート送信画面を表示していません。

//================================================================================= 
- (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; 
     } 
} 
+0

'SendTweet'を' MessageComposeResultSent'ケースに入れようとしましたか?または、 'dismissModalViewControllerAnimated'の直前です。 – antf

+0

@antf:お返事ありがとう、あなたのやり方を試しましたが、今でも動作していません – user198725878

+0

自己はモーダルですか? –

答えて

0

あなたは現在のオブジェクトのメインスレッドで実行したい問題が、あなたは[自己dismissModalViewControllerAnimated:YES]を呼び出した後、あなたのオブジェクトが解放されます。

したがって、生きているオブジェクトにsendTweetメソッドを渡す必要があります。

編集:

あなたはデリゲートプロトコルを実装し、sendTweetにごmodalView提示のViewControllerに伝えることができます(送信つぶやき方法をparentViewControllerでなければなりません)。

+0

返信いただきありがとうございます。 – user198725878

0

performSelectorOnMainThreadの代わりに通知センターを使用する理由は、hereです。通知センターの詳細については、hereをご覧ください。私はこれが役立つことを願っています

関連する問題