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)”方法,我将非常感激