4

我正在使用该CocoaLibSpotify库来开发将利用 Spotify API 的 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 回答