2017-07-17 8 views
1

私はログインが必要な場合、ログインをポップアップする必要のある「ヘルパー」シングルトンクラスを持っています。私は、ログイン・ビュー・コントローラからの復帰をキャプチャしたいので、私は私のLoginViewControllerでプロトコルを実装し、シングルトンクラスで私のデリゲートを設定する必要がありますが、私がしようとするとしている:View Controllerを独自のデリゲートとして設定するにはどうすればよいですか?

loginController.delegate = self 

Xcodeはしようとします私LoginViewController.swiftファイル内のプロトコル

loginController.delegate = self as! LoginViewControllerDelegate 

:としてそれを修正

protocol LoginViewControllerDelegate { 
    func loginViewControllerDidReturn(identifier: String) 
} 

任意のアイデア?

答えて

3

は、あなたのLoginViewController定義があることを確認してください。

また、プロトコルを実装する拡張することができます:、おかげ

extension LoginViewController: LoginViewControllerDelegate { 
    // Implement here the func of your protocol 
} 
+0

これは問題を解決しました。どのように/私のプロトコルを実装する必要がありますか?私はそれらをView Controllerの.swiftファイルの先頭に追加しています。これは正しい場所ではありませんか? – toast

+1

あなたはどこでもそれを行うことができます。デリゲートの場合、私は一般的にあなたと同じことをします:クラスのトップには – Dean

+0

のデリゲートですが、これはあなたが扱っているシングルトンパターンデザインではなく、代表団です。関連性のないタイトルを編集します – Dean

1

「自己」はLoginViewControllerDelegateプロトコルに準拠していますか?

class LoginViewController: UIViewController, LoginViewControllerDelegate { 
... 
} 

これは、あなたのクラスは、プロトコルを実装するコンパイラに知らせる:

+0

ああ、問題になることでしょう! :) – toast

関連する問題