1

ストーリーボードと xcode は初めてです (4.4 を使用)

ログイン条件を実装したいと思います。それが達成されれば、セグエが機能します。それ以外の場合、ユーザーは同じビューにとどまる必要があります。

ViewController と Bar Controller の 2 つの UIView を作成しました。

また、ViewController から Bar Controller へのセグエを作成し、その識別子をモーダルとして loginSegue に設定しました。

LoginViewController.m に以下を追加しました。

- (IBAction)login:(id)sender {
    self.email = self.emailText.text;
    self.password = self.passwordText.text;
   if ([self.email isEqualToString:@"O"] && [self.password isEqualToString:@"O"])
       [self performSegueWithIdentifier:@"LoginSegue" sender:sender];
    else
        [passwordText setText:@""];   
}

コードをデバッグすると、電子メールとパスワードが O に等しくない場合に if が else にスキップすることがわかりますが、セグエ (新しいビューへの遷移) は引き続き発生します。

ユーザーが新しいビューに転送されないようにするにはどうすればよいですか?

ところで、if else 条件を削除すると、ユーザーは自動的に次のビューに転送されます。あるビューから別のビューへのセグエを描いたときに、どこかで構成されたように思えます。

4

1 に答える 1

6

ifとの間の空白行を削除します[self perform...]

if-elseさらに、この問題が再び発生しないように、ステートメントを中かっこで囲むことを検討することをお勧めします。

if ([self.email isEqualToString:@"O"] && [self.password isEqualToString:@"O"]){
    [self performSegueWithIdentifier:@"LoginSegue" sender:sender];
}else{
    [passwordText setText:@""];
}

これで問題が解決しない場合は、セグエがボタンに直接接続されているのではなく、2 つのコントローラーに接続されていることを確認してください。

于 2012-08-29T13:59:32.657 に答える