新视图控制器与使用 .isHidden = true 隐藏文本字段

New view controller vs. hiding textfields with .isHidden = true

免责声明:我是编码新手。

我正在制作个人理财应用程序。当用户创建新交易时,我希望他们一次只显示一个文本字段。

在单个视图控制器中,我创建了一个带有 switch 语句的下一个按钮 hide/unhide 文本字段:

@IBAction func nextPressed(_ sender: UIButton) {
    
    buttonCounter += 1
        
    switch buttonCounter {
    case 1:
        currencyTextField.isHidden = true
        nameTextField.isHidden = false
            
    case 2:
        nameTextField.isHidden = true
        setupDateView()
            
    case 3:
        saveTransaction()
            
    default:
        print("Error")
    }
}

它工作得非常好,但我 运行 遇到了带有多个文本字段的 UITextfield Delegate 的一些问题。

我可以使用 @IBDesignable class customTextField: UITextField 来解决这个问题,但在继续之前我想知道这是否是一种糟糕的编程习惯。我是否仅通过使用单个视图控制器使它过于复杂?这种情况的最佳做法是什么?

提前致谢。

是不是在委托方法中无法跟踪多个文本字段文本的问题?

如果是这种情况,那么最简单的方法就是知道在委托方法中使用哪个文本字段。由于您有两个文本字段 currencyTextFieldnameTextField.

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if textField == currencyTextField {
        // do something
    } else if textField == nameTextField {
        // do something
    }
    return true
}

如果有帮助请告诉我。