使用另一个视图中的按钮编辑 UITableView

Editing a UITableView with a button from another view

我有两个视图,一个带有一个按钮,当我按下按钮时,另一个带有 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

}

此问题是由于尝试访问作为 IBOutlet 的 tableView 而引起的。目标视图控制器的插座尚未创建,这就是为什么所有 IBOutlets 都为零的原因。

解决方法是在目标视图中创建一个布尔变量...

var tempBoolean: Bool? = false

然后您可以在第一个 viewController 中将该变量的值赋给 true,因为它是用一个值初始化的。

最后,在您的目标视图中,根据 viewDidLoad 中的布尔变量值启用编辑...

if (tempBoolean == true) { 
   scheduleTableView.isEditing = true
   goalsTableView.isEditing = true
}

按照这些思路解决了这个问题。