2012-11-26 2 views
0

저는 Facebook이나 Twitter에서 메시지를 공유 할 수있는 새로운 ActivityViewController를 사용하고 있습니다. ActivityViewController의 Facebook 및 Twitter 버튼 만 표시하기 위해 excludedActivityTypes 속성을 변경했습니다. activityItems 배열에는 공유 할 텍스트가있는 NSString 만 있습니다.ActivityViewController를 사용하여 iOS 6의 언어 장치 대신 Twitter 미리보기 시트가 영어로 표시됩니다.

NSString *text = @"Text to share"; 

NSArray *activityItems = [NSArray arrayWithObjects:text, nil]; 

UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems: activityItems applicationActivities:nil]; 

// Indicamos los servicios estándar que no queremos mostrar 
NSArray *excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypePostToWeibo, UIActivityTypeMessage, UIActivityTypeMail, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, nil]; 

avc.excludedActivityTypes = excludedActivityTypes; 

[self presentViewController:avc animated:YES completion:nil]; 

장치는 스페인어로 구성된다 : 여기

코드이다.

그래서 페이스 북에서 공유를 선택하면 미리보기 시트가 스페인어로 표시되지만 (보통), 내가 트위터를 선택하면 트위터 미리보기 시트가 영어로 표시됩니다 ... 사용자에게는 그리 중요하지 않지만 아주 예쁘지는 않습니다. 또한 그것은 더 중요한 무엇인가의 증상이 될 수 있다고 걱정합니다.

트위터 미리보기 시트가 영어로 나타나는 이유는 무엇입니까?

UPDATE :는 ActivityViewIndicator의 버튼도 영어

덕분에 많이 나타나고있다 취소!

카를로스

+0

코드를 게시하십시오. –

+0

코드를 게시했습니다. – Carlos

+0

답을 확인하십시오. –

답변

4

마지막으로 문제가 현지화와 관련되어 있음을 확인했습니다. 어떤 언어로든 모든 시스템 viewcontroller를 보려면 .lproj 디렉토리를 추가했는지, 또는 필요한 모든 언어로 현지화 키를 info.plist에 추가했는지 확인해야합니다.

info.plist의 현지화 키에 스페인어를 추가 한 순간 트위터 시트가 스페인어로 표시되기 시작했습니다.

+0

키 이름이 무엇입니까? ... 동일한 문제가 발생했습니다. 감사합니다. – Steve

+0

키 이름은 "현지화"입니다. 이 키에 각 언어 당 하나의 항목을 추가합니다. – Carlos

0

새로운 iOS 6 API를 사용하여 Twitter 및 Facebook과 상호 작용하는 것이 좋습니다. 그것은 훨씬 쉽게 만듭니다. 여기에 짹짹을 보낼 코드가 있습니다

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
    { 
     SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

     tweetSheet.completionHandler = ^(SLComposeViewControllerResult result) { 
      switch(result) 
      { 

       case SLComposeViewControllerResultCancelled: 
        break; 
        // This means the user hit 'Cancel' 
       case SLComposeViewControllerResultDone: 
        // This means the user hit 'Send' 

        break; 
      } 

      // dismiss the Tweet Sheet 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       [self dismissViewControllerAnimated:NO completion:^{ 

        NSLog(@"Tweet Sheet has been dismissed."); 

       }]; 
      }); 
     }; 


     [tweetSheet setInitialText:@"Tweeting from my own app! :)"]; 

     [self presentViewController:tweetSheet animated:YES completion:NULL]; 
    } 
    else 
    { 
     UIAlertView *alertView = [[UIAlertView alloc] 
            initWithTitle:@"Sorry" 
            message:@"You can't send a tweet right now, make sure\ 
            your device has an internet connection and you have\ 
            at least one Twitter account setup" 
            delegate:self 
            cancelButtonTitle:@"OK" 
            otherButtonTitles:nil]; 
     [alertView show]; 
    } 
+0

답해 주셔서 감사합니다! 가능성이 있습니다. 하지만 ActivityViewController를 사용하여 다양한 옵션을 표시하고 싶습니다 ... 내 트위터 및 페이스 북 옵션으로 ActivityViewController를 사용할 수 있습니까? 방법? – Carlos

+0

어떻게 페이스 북에 트윗이나 포스트를 보냅니 까? ActivityViewController는 모달보기 만 표시하고 사용자가 Facebook에 게시하거나 Tweet을 보낼지 선택할 수 있습니까? –

+0

예, 정확하게. 나는 이제 더 많은 정보를 얻었습니다. ActiviyViewController의 취소 버튼이 스페인어 (또는 다른 장치 언어)로 표시되는 대신 영어로도 나타납니다 – Carlos