登录或注册分段控制按钮

时间:2017-08-09 16:45:49

标签: swift switch-statement uisegmentedcontrol

我目前有登录/注册按钮使用分段控件。我试图使用按钮登录来使用handleLogin函数,并使用registerRegister函数注册按钮。我目前试图以这种方式调用这些函数,但没有运气。  我的代码如下:

@IBAction func indexChanged(_ sender: UISegmentedControl) {
        switch loginRegisterSegmentedControl.selectedSegmentIndex {
        case 0:
            nameTextField.isHidden = true
            universityTextField.isHidden = true
            universityDropDown.isHidden = true
            loginRegisterButton.setTitle("Login", for: UIControlState())
            loginRegisterButton.addTarget(self, action: #selector(handleLogin), for: .touchUpInside)
        case 1:
            universityTextField.isHidden = false
            nameTextField.isHidden = false
            loginRegisterButton.setTitle("Register", for: UIControlState())
            loginRegisterButton.addTarget(self, action: #selector(handleRegister), for: .touchUpInside)
        default:
            break;
        }
    }

1 个答案:

答案 0 :(得分:1)

首先,您可以根据selectedIndex的{​​{1}}编写单独的功能来更改界面。此外,您只需要一个UISegmentedControl来执行特定操作。因此,在添加目标之前,您需要删除其他所有目标。否则,在按下Target时,您将获得多项操作。

loginRegisterButton

func changeInterfaceAccoringto(_ index:Int){ /*Remove all targets before add*/ loginRegisterButton.removeTarget(nil, action: nil, for: .allEvents) switch index { case 0: nameTextField.isHidden = true universityTextField.isHidden = true universityDropDown.isHidden = true loginRegisterButton.setTitle("Login", for: UIControlState()) loginRegisterButton.addTarget(self, action: #selector(handleLogin), for: .touchUpInside) case 1: universityTextField.isHidden = false nameTextField.isHidden = false loginRegisterButton.setTitle("Register", for: UIControlState()) loginRegisterButton.addTarget(self, action: #selector(handleRegister), for: .touchUpInside) default: break; } } 致电changeInterfaceAccoringto,如下所示,

indexChanged

要在理想情况下更改界面,您需要在方法@IBAction func indexChanged(_ sender: UISegmentedControl) { changeInterfaceAccoringto(loginRegisterSegmentedControl.selectedSegmentIndex) } 中调用changeInterfaceAccoringto,如下所示,

viewDidLoad

让我知道你需要吗?