0

.h、.mファイル、および2つのappDelegateファイルを含むサンプルコードがあります。プロジェクトの機能をアプリに追加したいと思います。最初の2つのファイルはViewControllerファイルなので、ドラッグするだけですが、他の2つはAppDelegateであり、明らかに2つのアプリデリゲートを持つことはできません。ただし、このサンプルアプリの場合、UIViewControllerファイルの.mファイルに次のコードがあるため、アプリデリゲートが適切なビューコントローラーとして使用されます。

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

AppDelegateはwillBecomeActive...などの機能を使用しないため、UIViewControllerファイルでファイルを変換するにはどうすればよいですか?Delegateの代わりにコントローラーを呼び出すために上記のコードで何を変更する必要がありますか(私のAppDelegateはそのまま残ります)。

コードはここにあります:https ://github.com/fbsamples/ios-3.1-howtos/tree/master/SendRequestsHowTo ...次にプロジェクトを開きます:SendRequestsHowTo...それはたった4つのファイルです

PS私はアプリデリゲートのようなものを作成する必要があると思いますが、それはアプリデリゲートではありません。

4

1 に答える 1

1

私が理解できるように、SendRequestsHowToからプロジェクトにコードを移動したいと思います。そして、あなたはあなたのAppDelegateを通してFacebookを使いたくないですか?新しいクラスを作成できます(例:FacebookManager)。次に、SendRequestsHowToのAppDelegateからFacebookManagerにコードを移動すると、シングルトンにすることができます。次に、ViewControllerからアクセスできます。

FacebookManager *manager = [FacebookManager sharedManager];
[manager openSessionWithAllowLoginUI:NO]

AppDelegateからhandleOpenURLへ:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    self.openedURL = url;
    // attempt to extract a token from the url
    return [[FacebookManager sharedManager] handleOpenURL:url];
}

CFBundleURLTypesをInfo.plistに追加することを忘れないでください。次のようになります。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb1234567890</string>
        </array>
    </dict>
</array>

シングルサインオンでユーザーを認証するときにFacebookiOSSafariの「ページを開くことができないエラー」

于 2012-11-18T21:54:59.960 に答える