ios - 重新实例化 Storyboard导航栏按钮

标签 ios swift storyboard uinavigationbar uibarbuttonitem

我在 Storyboard中设置了两个栏按钮项目并连接到这些 socket :

 @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

但这不起作用,什么也没有显示。如何解决此问题而无需在代码中设置所有按钮?有什么方法可以重置导航栏或重新实例化 Storyboard中的按钮吗?

最佳答案

您的两个导出较弱。因此,当您不再使用它们时,它们将变为nil。从 socket 声明中删除 weak,您的代码应该按预期工作。

关于ios - 重新实例化 Storyboard导航栏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55550457/

相关文章:

ios - 忽略 Xcode 6 中的警告

ios - 如何找出我的 iOS 应用程序的大小?它是否大于蜂窝下载限制?

ios - UICollectionViewCell 中的 UICollectionView (Swift)

iphone - 如何在iPhone的工具栏上添加分段控件

swift - 如果Int是一个负值,有没有办法表示为0?

ios - 如何从 .usdz 创建 SCNNode?

ios - 如何使用 Storyboard纵横比自动设置按钮等于?

ios - 我在 XCode Interface builder 中几乎没有 Controller 选项

iphone - 对象和非免费桥接类型之间的转换

ios - 如何在 0 处停止倒计时? - swift