Facebook SDKログインを使用して、あるストーリーボードから別のストーリーボードに移動します

ロスカリー

私は次のコードを持っています:

import UIKit
import FacebookLogin

class ViewController: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()

        var loginButton = FBLoginButton(permissions: [ .publicProfile ])
        
        let screenSize:CGRect = UIScreen.main.bounds
        let screenHeight = screenSize.height // real screen height
        //let's suppose we want to have 10 points bottom margin
        let newCenterY = screenHeight - loginButton.frame.height - 20
        let newCenter = CGPoint(x: view.center.x, y: newCenterY)
        loginButton.center = newCenter

        view.addSubview(loginButton)
        
        loginButton = FBLoginButton(permissions: [ .publicProfile, .email, .userFriends ])
        
        if AccessToken.current != nil
        {
        
        }
        
        let storyboard = UIStoryboard(name: "HomeAfterLogIn", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier: "HomeAfterLogIn")
        self.navigationController?.pushViewController(vc, animated: true)
        
    }
}

アプリを使用するためにFacebookにログインするようにユーザーに求めます。画像を見る:

ここに画像の説明を入力してください

そして、これはうまくいきます。ただし、ユーザーがログインすると、次のような「HomeAfterLogIn.storyboard」というストーリーボードにユーザーを移動するためのアプリが必要になります。

ここに画像の説明を入力してください

ただし、ユーザーがサインインした後の画面は次のようになります。

ここに画像の説明を入力してください

私は以前にこの質問をし、このコードを取得しました:

let storyboard = UIStoryboard(name: "HomeAfterLogIn", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "HomeAfterLogIn")
self.navigationController?.pushViewController(vc, animated: true)

このコードをファイル内で移動しましたが、違いはありません。

denis_lor

Facebookアプリを作成してセットアップしましたか?あなたはここでそれを行うことができますhttps://developers.facebook.com/apps/

  • アプリの作成>表示名の設定>アプリIDの作成
  • then you need to go to Settings > Basic > scroll down till you see Add Platform and choose iOS
  • put the bundle id of your iOS Project (that you can find in your Xcode > Project > Target > Bundle Identifier) and enable Single Sign ON then do Save Changes
  • Roles > Test Users > Add > Create Test User > Edit > Change name/password and put a password you will remember

Take note now of the test email user and password so you can debug your app. In Settings > Basic take note of App ID and Display Name to put in your Info.plist later.

Make sure you added to your Podfile:

pod 'FacebookCore'
pod 'FacebookLogin'

Then do a pod install in terminal (if you haven't already installed both pods).

In your AppDelegate.swift you should have this at least:

import UIKit
import FacebookLogin

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions:
            launchOptions
        )

        return true
    }

    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        return ApplicationDelegate.shared.application(
            app,
            open: url,
            options: options
        )
    }
}

Right click on Info.plist and Open As > Source Code, paste this before </dict> :

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fb{your-app-id}</string>
    </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>{your-app-id}</string>
<key>FacebookDisplayName</key>
<string>{your-app-name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-share-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>

And substitute {your-app-name} (once, with the Display App Name you took note before from your Facebook App Dashboard) and {your-app-id} (twice, as well you took note of this in the first step from your Facebook App Dashboard) in the above snippet.

Now go to your ViewController.swift:

import UIKit
import FacebookLogin

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if AccessToken.current != nil {
            // Already logged-in
            // Redirect to Home View Controller
            goToHome()
        }

        // Add LoginButton
        let loginButton = FBLoginButton(permissions: [ .publicProfile, .email, .userFriends ])
        let screenSize:CGRect = UIScreen.main.bounds
        let screenHeight = screenSize.height // real screen height
        //let's suppose we want to have 10 points bottom margin
        let newCenterY = screenHeight - loginButton.frame.height - 20
        let newCenter = CGPoint(x: view.center.x, y: newCenterY)
        loginButton.center = newCenter
        view.addSubview(loginButton)

        // Triggered after every successfully login / logout
        NotificationCenter.default.addObserver(forName: .AccessTokenDidChange, object: nil, queue: OperationQueue.main) { [weak self] _ in
            if AccessToken.current != nil {
                // Successfully just Logged in
                // Redirect to Home View Controller
                self?.goToHome()
            } else {
                // Successfully just Logged out
            }
        }
    }

    func goToHome() {
        let storyboard = UIStoryboard(name: "HomeAfterLogIn", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier: "HomeAfterLogInViewController") // I called mine like that (check screenshot below)
        self.navigationController?.pushViewController(vc, animated: true)
    }

}

Make sure your HomeAfterLogIn.storyboard's ViewController (which I am not sure with what ***ViewController.swift you linked it) has a HomeAfterLogIn Stoyboard ID. Eventually it should also be linked to a ***ViewController.swift file having the same name as the ID for simplicity (HomeAfterLogIn.swift for example).

私の例でHomeAfterLogInViewControllerは、このスクリーンショットにHomeAfterLogInViewController.swift示されているようにファイルとHomeAfterLogInViewControllerの両方を呼び出しましたStoryboard IDが、ストーリーボードのファイル名はHomeAfterLogIn.storyboard。のままにしましたここに画像の説明を入力してください

あなたを埋め込むなかった場合はViewControllerMain.storyboardに(私はあなたがそれをそこに持っていると思います)NavigationController、あなたはそれがナビゲーションにプッシュ動作させるためにそれをしなければならない、このようなホーム...のViewControllerとして別のViewControllerをスタック。

次のように実行できます。Main.storyboardからViewControllerをクリックし、メニューで次の場所に移動しEditor > Embed In > Navigation Controllerます。

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Facebook SDKログインを使用して、あるストーリーボードから別のストーリーボードに移動します

分類Dev

Facebook SDKで定義されているログインのリクエストコード定数(64206)はどこにありますか

分類Dev

iOS Facebook:ストーリーボードを使用したユーザーデータの取得

分類Dev

Facebook OpenGraph API:あるユーザーから別のユーザーにサイレントにリクエストを送信できますか?

分類Dev

Facebookから動画をストリーミングする方法

分類Dev

Facebook SDKはモバイルアプリのインストールにIDFAを使用しますか?

分類Dev

アプリでFacebookログインを使用し、ログインに成功した後、次のページ/ビューコントローラーに移動するにはどうすればよいですか?

分類Dev

Facebookからデータをダウンロードしている間のイベントの空のリスト

分類Dev

ネイティブアプリのインストールプロンプト(グーグルプレイ)を取得して、Facebookのアプリブラウザで動作させる方法はありますか?

分類Dev

FacebookLiteがインストールされている携帯電話でFacebookボタンを使用してログイン中にエラーが発生する

分類Dev

Socialite-Facebookを使用してログインしている現在のユーザーからアクセストークンを取得する方法

分類Dev

FacebookはiOSアプリケーションのダッシュボードでのアプリのインストールを追跡しません

分類Dev

Facebookポッドをインストールした後、プロジェクトのロード時にXcodeがフリーズする

分類Dev

Facebookからアプリのインストールを決定します

分類Dev

アンドロイドアプリからログインした人のFacebookメールを取得する

分類Dev

Facebookログインボタンウィジェットリソース識別子なし

分類Dev

djangoallauthリクエストを使用してFacebookからログインする場合ユーザーは管理者です

分類Dev

Facebookのプロフィールテキストボックスへのリンクをコピーして、ページのタイトルや画像などを共有するにはどうすればよいですか?

分類Dev

コードネーム1。Webviewコンポーネントを使用してFacebookでログインします

分類Dev

Facebook PHP SDK (ダミー用) を使用して、ヘッドレス Web サイトから Facebook に記事を公開する

分類Dev

「サーバーIPホワイトリスト」のFacebook開発者コンソールにどのIPアドレスを入力する必要がありますか?(Facebookからの400エラー)

分類Dev

SDK 4.0を使用してAndroidでFacebookログインに成功した後、ユーザーのメールアドレスが必要です

分類Dev

Facebookチャットプラグインは、ロード時にページをトップに自動スクロールします

分類Dev

Facebookアプリ:テストユーザーとしてサインインするユーザーを自動的に追加します

分類Dev

Playストアからダウンロードしたアプリにのみ表示されるFacebook広告

分類Dev

Facebook広告アカウントのサンドボックスアカウントの作成とads_readのロック解除-(別名:Facebookからの入門チュートリアルを完了する)

分類Dev

Facebookインスタントゲームでリーダーボードスコアを送信できませんでした

分類Dev

MongoDB Stitchは、Facebookのログイン試行中にリダイレクトURIを二重にエンコードして、ログインプロセスを中断しますか?

分類Dev

Facebookページリストをドロップダウンリストに更新します

Related 関連記事

  1. 1

    Facebook SDKログインを使用して、あるストーリーボードから別のストーリーボードに移動します

  2. 2

    Facebook SDKで定義されているログインのリクエストコード定数(64206)はどこにありますか

  3. 3

    iOS Facebook:ストーリーボードを使用したユーザーデータの取得

  4. 4

    Facebook OpenGraph API:あるユーザーから別のユーザーにサイレントにリクエストを送信できますか?

  5. 5

    Facebookから動画をストリーミングする方法

  6. 6

    Facebook SDKはモバイルアプリのインストールにIDFAを使用しますか?

  7. 7

    アプリでFacebookログインを使用し、ログインに成功した後、次のページ/ビューコントローラーに移動するにはどうすればよいですか?

  8. 8

    Facebookからデータをダウンロードしている間のイベントの空のリスト

  9. 9

    ネイティブアプリのインストールプロンプト(グーグルプレイ)を取得して、Facebookのアプリブラウザで動作させる方法はありますか?

  10. 10

    FacebookLiteがインストールされている携帯電話でFacebookボタンを使用してログイン中にエラーが発生する

  11. 11

    Socialite-Facebookを使用してログインしている現在のユーザーからアクセストークンを取得する方法

  12. 12

    FacebookはiOSアプリケーションのダッシュボードでのアプリのインストールを追跡しません

  13. 13

    Facebookポッドをインストールした後、プロジェクトのロード時にXcodeがフリーズする

  14. 14

    Facebookからアプリのインストールを決定します

  15. 15

    アンドロイドアプリからログインした人のFacebookメールを取得する

  16. 16

    Facebookログインボタンウィジェットリソース識別子なし

  17. 17

    djangoallauthリクエストを使用してFacebookからログインする場合ユーザーは管理者です

  18. 18

    Facebookのプロフィールテキストボックスへのリンクをコピーして、ページのタイトルや画像などを共有するにはどうすればよいですか?

  19. 19

    コードネーム1。Webviewコンポーネントを使用してFacebookでログインします

  20. 20

    Facebook PHP SDK (ダミー用) を使用して、ヘッドレス Web サイトから Facebook に記事を公開する

  21. 21

    「サーバーIPホワイトリスト」のFacebook開発者コンソールにどのIPアドレスを入力する必要がありますか?(Facebookからの400エラー)

  22. 22

    SDK 4.0を使用してAndroidでFacebookログインに成功した後、ユーザーのメールアドレスが必要です

  23. 23

    Facebookチャットプラグインは、ロード時にページをトップに自動スクロールします

  24. 24

    Facebookアプリ:テストユーザーとしてサインインするユーザーを自動的に追加します

  25. 25

    Playストアからダウンロードしたアプリにのみ表示されるFacebook広告

  26. 26

    Facebook広告アカウントのサンドボックスアカウントの作成とads_readのロック解除-(別名:Facebookからの入門チュートリアルを完了する)

  27. 27

    Facebookインスタントゲームでリーダーボードスコアを送信できませんでした

  28. 28

    MongoDB Stitchは、Facebookのログイン試行中にリダイレクトURIを二重にエンコードして、ログインプロセスを中断しますか?

  29. 29

    Facebookページリストをドロップダウンリストに更新します

ホットタグ

アーカイブ