2016-10-28 8 views
-1

誰かが簡単な6桁の数字のパスコードを入力できるようにするログインページを作ろうとしています。ログインページはすでにパスワード「719403」で設定されており、ユーザーはパスワードを変更できません。パスコードが正しい場合は、別のviewcontrollerにセグメントしますが、パスワードが間違っていると何も起こりません。簡単なパスワードでuitextfieldのシンプルなパスワード

+0

適切な委任方法でテキストフィールドを設定しましたか? –

+0

単に 'shouldPerformSegueWithIdentifier'を実装し、テキストフィールドの値をチェックし、必要に応じて' true'または 'false'を返します。 – Paulw11

+0

@AdamZarn私は、ストーリーボードにUItextfieldを設定しました。 –

答えて

1

あなたのUITextFieldの@IBOutletを作成し、viewControllerをviewDidLoadのテキストフィールドの代理人に設定します。

self.textField.delegate = self 

あなたはセグエを開始したいときに、あなたのテキストフィールドの値は「719403」に等しいかどうかを確認します。

if self.textField.text == "719403" { 
//perform segue 
} 
+0

self.textfield.delegateをselfに設定するとエラーが発生します。アウトレットを追加してtextField "textField"と呼びましたが、それは2番目の自己の下にエラーがあります –

+0

私はクラスに代理人で追加する必要がありますか? –

+0

右、ViewControllerクラスに変更してください:UITextFieldDelegate –

0

あなたはUITextFieldTextDidChange通知名でNSNotificationを実装することができます。 viewWillAppear

NotificationCenter.default.addObserver(self, selector: #selector(textFieldChanged(_:)), name: NSNotification.Name.UITextFieldTextDidChange, object: nil) 

にこのコードを入れて、私は私の問題を解決することができました

func textFieldChanged(_ info:Notification) { 

     if self.textField.text == "719403" { 
      //perform segue 
     } 
} 
+0

下に私の答えを確認してください –

+0

あなたが実装したものは、アクションのボタンが必要です。私の解答では、textFieldが値と一致すると直ちに次のコントローラに行きます。 –

0

にもこの機能を実装しています。

あなたはUitextフィールドのコンセントを作成してから、「ログイン」ボタンを作成する必要があります。ログインボタンをアクションにしてこのアクションを実行させます。

if self.textField.text == "719403" { 
self.performSegue(withIdentifier: "Segue", sender: nil) 
} 
関連する問題