14

私はiOS6で新しいソーシャルフレームワークを実装しようとしています.2つの奇妙な問題を除いて、それを機能させようとしています. 興味のあるサービス (FaceBook など) を有効にしていれば、問題なく動作します。ただし、アカウントが設定パネルから削除された場合 (一貫性を保つために FaceBook としましょう)、シミュレーターとデバイスで動作が異なり、イライラさせられます。

ビューコントローラーの関連コードは次のとおりです。

//Method for FaceBook

- (IBAction)doFacebook:(id)sender{
//check to see if facebook account exists
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

    // Create the view controller defined in the .h file

    fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    // make the default string
    NSString *FBString= [NSString
                         stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
    [fb setInitialText:FBString];
    // show the controller
    [self presentViewController:fb animated:YES completion:nil];

    }
}

そして、上記のメソッドを起動したときの奇妙な動作は次のとおりです。

シミュレーター (バージョン 6.0 (358.4 ) ) で、「設定」ボタンと「キャンセル」ボタンを使用して faceBook アカウントを設定していないことを知らせるダイアログが表示されます。設定パネルへ。

6.01 を実行している私のiPhone 4s では、メソッドをトリガーするボタンを押しても...何も起こりません。つまり、FaceBook アカウントを設定する必要があることを知らせるダイアログは表示されません。

よろしくお願いします。


わかりました...修正は次のとおりです。

これは、user1734802 の有益なコメントに基づく私の新しい実装です。

//Method for FaceBook

- (IBAction)doFacebook:(id)sender{

    // Create the view controller defined in the .h file

    fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    // make the default string
    NSString *FBString= [NSString
                         stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
    [fb setInitialText:FBString];
    // show the controller
    [self presentViewController:fb animated:YES completion:nil];

      }

ある時点で私は期待しています

 [SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

実際に正しく動作するように (自動ダイアログをトリガーし、設定に移動します)、コードで実際にコメントアウトしただけです。

4

1 に答える 1

28

私は同じ問題を抱えていました.Ifステートメントを削除して修正しました:

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

その後、設定で構成された Facebook/Twitter アカウントがなくてもビューが表示されます。そして、「Facebook / Twitterアカウントがありません」alertViewが表示されました!そして、アラートの「設定」ボタンを押すことができ、設定に移動しました(設定でFacebook / Twitterアカウントを構成します)

これは私が使用したコードであり、私にとっては完璧に機能します:

- (IBAction)bTwitter:(id)sender {

mySLComposerSheet = [[SLComposeViewController alloc] init];

mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

[mySLComposerSheet setInitialText:@""];

[mySLComposerSheet addImage:[UIImage imageNamed:@""]];

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

}
于 2013-01-09T14:19:22.120 に答える