我想调整另一个类中按钮的可见性。当在下面的代码中调用fetchDeviesNewDevice()
函数时,我希望其他classaki buttonnew处于活动状态。
我试图这样做,但它在下面的代码中不起作用。
class MainTableViewController: UITableViewController, UITabBarControllerDelegate, MiniTabBarDelegate {
@objc func fetchDeviesNewDevice(){
let mainTableVC3 = DeviceTableViewCell()
mainTableVC3.newdevicechipnumber = self.newdevicechipnumber.text
mainTableVC3.buttonaktif()
.... } }
class DeviceTableViewCell: UITableViewCell {
@objc func buttonaktif(){
buttonNew.isHidden = false
}
lazy var buttonNew: UISwitch = {
let sw = UISwitch()
sw.translatesAutoresizingMaskIntoConstraints = false
sw.isOn = false
sw.isHidden = true
sw.addTarget(self, action: #selector(handleChangeStateNew), for: .valueChanged)
sw.addTarget(self , action: #selector(didPressNew), for: .valueChanged)
return sw
}()
}
这个
let mainTableVC3 = DeviceTableViewCell()
创建一个新单元格,您需要在模型中添加可见性逻辑并重新加载表格
var hideBtn = false // default
@objc func fetchDeviesNewDevice(){
hideBtn = true / false
//reload the table / indexpath
}
然后在cellForRowAt
内
let cell = ////
cell.buttonNew.isHidden = hideBtn
EDITED
在:
@objc func fetchDeviesNewDevice(){
let mainTableVC3 = DeviceTableViewCell()
mainTableVC3.newdevicechipnumber = self.newdevicechipnumber.text
mainTableVC3.buttonaktif()
....
}
代替 :
mainTableVC3.buttonaktif()
尝试:
mainTableVC3.buttonNew.isHidden = false
yourTableView.reloadData()
让我知道它是否有效