0

新しいActivityViewControllerを使用して、ユーザーがFacebookまたはTwitterでメッセージを共有できるようにしています。ActivityViewControllerにFacebookボタンとTwitterボタンのみを表示するために、excludedActivityTypesプロパティを変更しました。activityItems配列には、共有するテキストを含むNSStringしかありません。

コードは次のとおりです。

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];

デバイスはスペイン語で構成されています。

したがって、Facebookで共有を選択すると、プレビューシートはスペイン語(通常)で表示されますが、Twitterを選択すると、Twitterプレビューシートは英語で表示されます...これはそれほど重要ではありませんが、ユーザーにとってはあまりきれいではありません。また、もっと重要なことの症状かもしれないと心配しています。

Twitterのプレビューシートが英語で表示される理由をご存知ですか?

更新: ActivityViewIndicatorのキャンセルボタンも英語で表示されます

どうもありがとう!

カルロス

4

2 に答える 2

4

最後に、問題がローカリゼーションに関連していることを確認しました。すべてのシステムビューコントローラを任意の言語で表示するには、.lprojディレクトリを追加するか、info.plistに必要なすべての言語のローカリゼーションキーを追加していることを確認する必要があります。

info.plistのローカリゼーションキーにスペイン語を追加した瞬間、Twitterシートがスペイン語で表示され始めました。

于 2012-11-30T08:54:37.027 に答える
0

TwitterやFacebookとやり取りするには、新しいiOS6APIを使用することをお勧めします。それはそれをはるかに簡単にします。ツイートを送信するためのコードは次のとおりです

  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];
    }
于 2012-11-26T11:29:08.380 に答える