我有一个包含不同部分的tableview。在加载视图后,我隐藏了该部分并在该部分上创建了一个覆盖按钮,在单击它时会显示一个警告框,要求输入管理员密码
问题:现在,我试图在用户输入正确的密码并隐藏按钮后显示最初隐藏的部分。 需要帮助
最初将第1部分设置为隐藏并创建叠加按钮:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 1 {
let enableButton = UIButton(frame: CGRect(origin: CGPoint(x: 320, y: 160), size: CGSize(width: 130, height: 30)))
enableButton.backgroundColor = UIColor.clear
enableButton.setTitle("Enable Section", for: .normal)
enableButton.setTitleColor(.blue, for: .normal)
enableButton.addTarget(self, action: #selector(ConfigTableViewController.enableButtonClicked), for: .touchUpInside)
self.view.addSubview(enableButton)
return 0
}
else if section == 2 {
return 2
}
else if section == 3 {
return 2
}
return 1
}
单击按钮时,此函数调用:
func enableButtonClicked() {
let alertController = UIAlertController(title: "Admin Password", message: "Please input admin password", preferredStyle: .alert)
let enable = UIAlertAction(title: "Enable", style: .default) { (_) in
let field = alertController.textFields?[0].text
if let x = UserDefaults.standard.string(forKey: "initial admin password"), x == field {
}
else{
let wrongPwd = UIAlertController(title: "Wrong Admin Password", message: nil, preferredStyle:UIAlertControllerStyle.alert)
wrongPwd.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil))
self.present(wrongPwd, animated: true, completion: nil)
}
}
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (_) in }
alertController.addTextField { (textField) in
textField.placeholder = "Admin Password"
textField.isSecureTextEntry = true
}
alertController.addAction(enable)
alertController.addAction(cancelAction)
self.present(alertController, animated: true, completion: nil)
}
答案 0 :(得分:1)
要解决您的问题,我建议您创建StatusId
,以检查您的flag
是否正确。
1.假设你有一面旗帜:
PassWord
只需将按钮拖到您的单元格,然后创建var correctPasswordFlag : Bool = false // initially assume it wrong
说IBOutlet
并将目标选择器添加到此方法中:
func enableButtonClicked(){
configEnableButton
希望这可以帮助您解决问题。 享受编码和继续学习。