2

StartViewController と ProfileViewController の 2 つの異なる UIViewController に 2 つの FBLoginView があります。

StartViewController にログインするとloginViewShowingLoggedInUser、このコントローラーのデリゲート メソッドのみが呼び出されます。だから大丈夫

しかし、StartView でログインせず、ProfilView で後でログインすると、両方のメソッドloginViewShowingLoggedInUserが呼び出されます。StartViewController のメソッドと ProfilViewController のメソッドの 1 つです。

StartViewController で:

- (void) loginViewShowingLoggedInUser:(FBLoginView *)loginView
{
   NSLog(@"start");
}

ProfileViewController で:

- (void) loginViewShowingLoggedInUser:(FBLoginView *)loginView
{
   NSLog(@"profile");
}

そして、ProfilViewController にログインすると、両方のメソッドが呼び出され、コンソールに表示されます: start profile

他のコントローラーではなく、ログインしたコントローラーでメソッドを呼び出すにはどうすればよいですか?

ありがとう。

4

2 に答える 2

0

インスタンスを appdelegate のプロパティとして保持し、applicationDidFinishLaunchingWithOptions で初期化します。appdelegate のインスタンスを参照してそれをサブビューするだけで、delegate を self に設定します。dealloc でデリゲートを nil に設定し、スーパービューから削除します。解放しないでください。

于 2013-08-17T15:26:41.000 に答える