iOS Swift:如何在UIViewController中隐藏和显示按钮

iOS Swift:如何在UIViewController中隐藏和显示按钮,ios,swift,xcode,uicollectionview,Ios,Swift,Xcode,Uicollectionview,我有一个普通的UICollectionView,它显示一个主题列表 在标题中,我有3个按钮“filter”、“clear”和“back” 这些按钮都是在情节提要中创建的,没有链接IBOutlets(见下文)。“filter”和“back”按钮链接到Segue/disease Segue,而“clear”按钮作为链接到它的iAction”按钮 “filter”按钮会弹出另一个viewcontroller(tableview),用户可以在其中选择各种“过滤器””,当返回到collectionview

我有一个普通的
UICollectionView
,它显示一个主题列表

在标题中,我有3个按钮“
filter
”、“
clear
”和“
back

这些按钮都是在
情节提要
中创建的,没有链接
IBOutlets
(见下文)。“
filter
”和“
back
”按钮链接到Segue/disease Segue,而“
clear
”按钮作为链接到它的
iAction
”按钮

filter
”按钮会弹出另一个
viewcontroller
tableview
),用户可以在其中选择各种“
过滤器”
”,当返回到
collectionview
时,主题已被“
过滤”。工作很好

清除”
”按钮清除已应用于视图集合的所有过滤器。按下此按钮时,所有过滤器都将被移除,并且重新加载
viewcontroller
。工作又变得可爱了

但是,我希望隐藏“
清除”
”按钮,除非应用了过滤器。此时,“
过滤器
”和“
清除
”按钮从一开始就显示出来。我很高兴过滤器按钮始终存在,因为我希望用户能够随时应用/调整过滤器。但我只希望在应用了过滤器的情况下显示“
清除”
”按钮。因此,我不希望在启动时或按下“
清除
”按钮后使用“
清除按钮”
,直到使用下一个过滤器

我通常只需将
IBOutlet
链接到一个按钮,并设置其
ishiden
属性,如果我想
在各个点隐藏/取消隐藏它。但是,我似乎无法做到这一点,因为我遇到了一个错误:

当我将IBOutlet链接到标题中的“清除”按钮时,“
重复内容无效”

我试着创建一个子类
UICollectionViewCell
,然后从那里创建
IBOutlet
。效果很好,我可以链接到按钮(我尝试将所有3个按钮或仅“
清除按钮
”组合在一起。但是“
过滤器
”和“
返回
”按钮的顺序不再触发

我正在寻找一种方法,可以隐藏/取消隐藏“清除”按钮,同时保持segue/disclose触发器仍在工作

我希望你能给我一个正确的方向


NB:我没有包含任何代码,因为
UICollectionView

没有什么特别之处。您可以通过
viewWithTag()
访问
UIButton
,然后更改它的
。isHidden
属性。请记住在情节提要中设置标记

view.viewWithTag(在此处插入YourTag)。isHidden=false


在我看来,添加IBOutltes会更好。

非常感谢。我使用了Tag选项,并使它工作得很好。我同意它在某些方面不是很优雅,我肯定不是最佳实践。如果有人能建议使用iBoutles的“更正确(sic)”方法,我将非常感激