2012-10-02 64 views
1

檢查Twitter是否可用時,iPhone模擬器與實際設備之間似乎有區別。iOS6 Twitter整合

我檢查是否Twitter帳戶是設置通過使用此代碼:[SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter];

在模擬器有一個很好的UIAlertView通知用戶不存在Twitter帳戶設置和兩個按鈕一個用於設置和一個用於取消。

但是,當我在我的設備上運行我的應用程序時,它不會顯示以上UIAlertView。這是爲什麼?我如何能趕上哪個按鈕在上面UIAlertView被竊聽

這就是它看起來像在模擬器上(因爲我沒有實例嗎?):

enter image description here

回答

0

要處理的結果Twitter的電話,您可以使用此代碼片段:

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
{ 
     SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){ 

     [twitterController dismissViewControllerAnimated:YES completion:nil]; 

     switch(result){ 
     case SLComposeViewControllerResultCancelled: 
     default: 
     { 
      NSLog(@"Cancelled....."); 

     } 
      break; 
     case SLComposeViewControllerResultDone: 
     { 
      NSLog(@"Posted...."); 
     } 
      break; 
    }}; 

    [twitterController setCompletionHandler:completionHandler]; 
    ... 
    ... 
    } 
+0

這並不回答我的問題。 ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) { –

+0

刪除此檢查會使所有內容正常工作 –

0
我也是有同樣的問題,像模擬器確實設備不顯示UIAlert

。直到蘋果修復它,這就是我正在做的事情(不像模擬器那樣乾淨漂亮,並且需要用戶手動進入主屏幕)蘋果公司,請解決這個問題!

編輯:股票蘋果應用程序顯示UIAlert完美當然,例如:從照片應用程序分享照片沒有Twitter/Facebook帳戶將顯示正確的UIAlert。

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
    { 
     mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
     [mySLComposerSheet setInitialText:@"Check out the app:"]; 
     [mySLComposerSheet addImage:[UIImage imageNamed:@"test.png"]]; 
     [mySLComposerSheet addURL:[NSURL URLWithString:@"http://urlofyourapp.com"]]; 
     [self presentViewController:mySLComposerSheet animated:YES completion:nil]; 
    } 
    else { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"You need to setup an account in the Settings app under Twitter to use this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
    } 
    [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) { 

     if (result == SLComposeViewControllerResultCancelled){[mySLComposerSheet dismissModalViewControllerAnimated:YES];} 
     else if (result == SLComposeViewControllerResultDone){[mySLComposerSheet dismissModalViewControllerAnimated:YES];} 

    }];