我有两个视图,一个带有一个按钮,当按下按钮时,我想要一个UITableView进入另一个视图处于编辑模式。
这是我的代码,当我将第二个视图代码放在viewDidLoad
中时,编辑工作,但是当我从第一个视图调用它时,它会起作用。
第一次查看代码:
@IBAction func addButtClick(_ sender: UIButton) {
let vc = GrowthMainViewController()
vc.navigationItem.rightBarButtonItem = self.editButtonItem
vc.editbuttpressed()
}
第二个视图(使用tableView)代码:
func editbuttpressed() {
self.scheduleTableView.isEditing = true
self.goalsTableView.isEditing = true
}
答案 0 :(得分:1)
此问题源于尝试访问作为IBOutlet的tableView。目标视图控制器的出口尚未创建,这就是为什么所有IBOutlet都是零的。
对此的解决方法是在目标视图中创建一个布尔变量...
var tempBoolean: Bool? = false
然后你可以在第一个viewController中将该变量的值赋值为true,这将起作用,因为它是用值初始化的。
最后,在目标视图中启用编辑,具体取决于viewDidLoad中的布尔变量值...
if (tempBoolean == true) {
scheduleTableView.isEditing = true
goalsTableView.isEditing = true
}
这些问题解决了这个问题。