2016-10-28 47 views
-1

我正在嘗試創建一個登錄頁面,允許某人鍵入一個簡單的6位數字密碼。登錄頁面已經設置了密碼「719403」,用戶無法更改。如果密碼正確,它會延續到一個不同的視圖控制器,但如果密碼錯誤,則什麼都不會發生。swift中使用uitextfield的簡單密碼

+0

您是否已經設置了具有相應委託方法的文本字段? –

+0

只需實現'shouldPerformSegueWithIdentifier'並檢查文本字段中的值,根據需要返回「true」或「false」。 – Paulw11

+0

@AdamZarn我只在故事板上設置了UItextfield –

回答

1

創建一個UITextField的@IBOutlet,並將viewController設置爲viewDidLoad中文本字段的委託。

self.textField.delegate = self 

然後,當你想啓動SEGUE,請檢查您是否文本字段值等於「719403」:

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

我在將self.textfield.delegate設置爲self時出錯。我添加了插座,並調用了textField「textField」,但它在第二個自我下有錯誤 –

+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

我能解決我的問題。

您需要爲Uitextfield創建一個插座,然後創建一個「登錄」按鈕。使登錄按鈕成爲一個動作並讓它執行此操作

if self.textField.text == "719403" { 
self.performSegue(withIdentifier: "Segue", sender: nil) 
}