重新实例化情节提要导航栏按钮

时间:2019-04-06 15:13:54

标签: ios swift storyboard uinavigationbar uibarbuttonitem

我在情节提要板上设置了两个条形按钮项目,并已连接到这些插座:

 @IBOutlet weak var sideMenuButton: UIBarButtonItem!

 @IBOutlet weak var selectButton: UIBarButtonItem!

按下选择按钮时,我用另外两个按钮替换了这些按钮,

deleteButton = UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(deleteButtonPressed(_:)))      
cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelButtonPressed(_:)))

navigationItem.leftBarButtonItem = cancelButton
navigationItem.rightBarButtonItem = deleteButton

现在,我想按“取消”按钮时将所有内容改回来。我正在尝试通过将插座传递给barButtonItems来做到这一点:

navigationItem.leftBarButtonItem = sideMenuButton
navigationItem.rightBarButtonItem = selectButton

但是这不起作用,什么也没有出现。如何解决此问题而不必在代码中设置所有按钮?有什么方法可以重置导航栏或重新实例化情节提要中的按钮吗?

1 个答案:

答案 0 :(得分:0)

您的两个出口是weak。因此,当您不再使用它们时,它们将变为nil。从插座声明中删除weak,您的代码应可以正常工作。