0

我試圖在推特發佈成功完成後呈現模態視圖;然而,我無法展示我的控制器,因爲SLComposeViewController仍在呈現。是否有一些完成方法會在所有事件都發生競爭並且視圖被解散時調用?當前視圖控制器完成Twitter的呼叫

SLComposeViewController* tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
    tweetSheet.completionHandler = ^(SLComposeViewControllerResult result){ 
     UBSTwitterSuccessViewController* twitterView; 
     switch(result){ 
      case SLComposeViewControllerResultCancelled: 
       break; 
      case SLComposeViewControllerResultDone: 
       twitterView = [[UBSTwitterSuccessViewController alloc]initWithNibName:XIBTWITTERSUCCESS bundle:nil]; 
       [self presentViewController:twitterView animated:YES completion:nil]; 
       break; 
     } 
    }; 
    [tweetSheet setInitialText:@"Check out this cool thing"]; 
    [tweetSheet addURL: [NSURL URLWithString:@"http://www.cad-comic.com/"]]; 

    [self presentViewController:tweetSheet animated:NO completion:nil]; 

沒有呈現視圖警告:

Warning: Attempt to present <UBSTwitterSuccessViewController: 0x16569b70> on <UINavigationController: 0x1663bd30> which is already presenting <SLComposeViewController: 0x166b1170> 

回答

-1

SLComposeViewController在對其分配塊completionHandler當用戶完成或取消的組成後執行。

completionHandler用戶完成撰寫文章 後調用的處理函數。

@屬性(非原子,副本)SLComposeViewControllerCompletionHandler completionHandler討論處理程序有一個單一的參數 指示用戶是否完成或取消撰寫的文章。 該塊不保證在任何特定的線程上被調用。

特別注意事項在iOS 6中和更早的版本,如果你設置完成 處理器那麼你完成處理程序是負責使用 dismissViewControllerAnimated駁回 SLComposeViewController:完成:.在iOS 7及更高版本中,當使用iOS 7或更高版本SDK編譯 時,您不得在完成處理程序中關閉 SLComposeViewController - 系統將自動執行 。

Apple Documentation

+0

我使用completionHandler,但問題是,SLComposeViewController仍然被提出時,完成處理器上運行,所以提出另一種看法控制器出現故障。 – steventnorris 2014-09-03 14:08:54

+1

你必須首先關閉'tweetSheet'。 'case SLComposeViewControllerResultDone: [self dismissViewControllerAnimated:YES completion:^ {0} {[UBSTwitterSuccessViewController alloc] initWithNibName:XIBTWITTERSUCCESS bundle:nil]; [self presentViewController:twitterView animated:YES completion:nil]; }];' – 2014-09-03 16:12:33

+0

「在iOS 7及更高版本中,當使用iOS 7或更高版本的SDK編譯時,您不得在完成處理程序中關閉SLComposeViewController,系統將自動執行此操作。我正在爲iOS 7編碼。 – steventnorris 2014-09-03 17:28:38