4

ライブラリを使用してCocoaLibSpotify、SpotifyAPIを利用するiOSアプリケーションを開発しています。欲しいところにあるのですが、少し問題があります。

ユーザーが[Spotifyのログアウト]ボタンをタッチすると、次のコードが実行されます。

-(IBAction)logoutButtonTouched:(id)sender
{
    // Clear out the user's settings that I am saving.
    NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
    [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

    [[SPSession sharedSession] logout:^(void) {
        SPLoginViewController *controller = [SPLoginViewController loginControllerForSession:[SPSession sharedSession]];
        controller.allowsCancel = NO;
    }];
}

これは確かにユーザーをログアウトして表示しますSPLoginViewControllerが、私の問題は、ユーザー名とパスワードのフィールドに、ユーザーがログインしたときの値がまだ含まれていることです。を表示するときにこれらのフィールドをクリアする方法を知っている人はいSPLoginViewControllerますか?

4

1 に答える 1

2

この機能はログインコントローラにはありませんが、これは確かにバグです。

あなたはこのようにそれを行うことができます。これは本当に壊れやすいコードであり、ログインコントローラの内部の詳細が変更されると失敗し、将来的には失敗することに注意してください。

SPLoginViewController *controller = [SPLoginViewController loginControllerForSession:[SPSession sharedSession]];

id internalLoginViewController = [controller.viewControllers objectAtIndex:0];
UITextField *loginField = [internalLoginViewController valueForKey:@"usernameField"];
UITextField *passwordField = [internalLoginViewController valueForKey:@"passwordField"];
loginField.text = @"";
passwordField.text = @"";
于 2012-12-29T21:19:48.037 に答える