0

次のように、アプリデリゲートからログイン画面を設定しました。

  NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
BOOL needsPassCheck = [def boolForKey:kHasPassword];
if (needsPassCheck) {
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle: nil];

    VerifyPasswordViewController *passC = (VerifyPasswordViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"passCheck"];
    passC.loginCheck = YES;
    self.window.rootViewController = passC;
}

ビューコントローラーでは、起動方法は次のとおりです。

    - (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    if (self.loginCheck) {
        [self.topBar setHidden:YES];
        self.enterPLabel.text = NSLocalizedString(@"Enter Password", @"Enter Password");
    }else {
        [self.topBar setHidden:NO];
        self.enterPLabel.text = NSLocalizedString(@"Enter Old Password", @"Enter Old Password");
    }

    [self.continueButton setTitle:NSLocalizedString(@"Continue", @"Continue") forState:UIControlStateNormal];
 }

-(void)viewDidAppear:(BOOL)animated
{

    [self.passwordTextField becomeFirstResponder];

    [self viewDidAppear:animated];

}

問題は、無限ループに入るように見えることです: http://i.imgur.com/KmarG.png

何が問題ですか?どうすれば修正できますか?

4

1 に答える 1

1

はい、その明らかです、あなたはあなたのコードに再帰的です。各viewDidAppearで、別のviewDidAppearを呼び出します。それ以外の:

[self viewDidAppear:animated];

電話:

[super viewDidAppear:animated];
于 2012-11-03T19:58:14.997 に答える