代码之家  ›  专栏  ›  技术社区  ›  Nicholas Farmer

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

  •  0
  • Nicholas Farmer  · 技术社区  · 7 年前

    我有一个磨坊 UICollectionView 显示主题列表的。

    在标题里我有三个按钮 filter ', ' clear '和' back '

    这些按钮都是在 storyboard ,没有 IBOutlets 链接(见下文)。' 滤波器 '和' '按钮链接到Segue/解除Segue和' 清楚的 '按钮作为 IBAction 与之相关。

    滤波器 '按钮打开另一个 viewcontroller tableview )用户可以在其中选择各种' filters '当返回到 collectionview 主题是 filtered '. 很好用。

    ' '按钮清除已应用于视图集合的所有筛选器。当按下此键时,所有过滤器都将被移除,并且 视图控制器

    但是我想隐藏 '按钮,除非已应用筛选器。目前 滤波器 '和' 清楚的 '按钮都是从一开始就显示的。我很高兴filter按钮总是出现,因为我希望用户能够随时应用/调整过滤器。但我只想要 '如果应用了筛选器,则显示的按钮。所以,我不想 clear button '在启动时或之后' '按钮被按下…直到下一个过滤器被使用。

    我通常只会链接一个 IBOutlet isHidden 属性如果我想的话 hide/unhide 在不同的地方。然而,我似乎无法做到这一点,因为我得到了一个错误:

    " invalid repeating content' when I link a IBOutlet to the 'clear' button in the header

    我试着创建一个子类 UICollectionViewCell 并创建 IBOutlet接口 从那里开始。那很好,我可以链接到按钮(我尝试了所有3个或只是' 清除按钮 '. 但是接下来是 滤波器 后面 '按钮不再被触发。

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   kkiermasz    7 年前

    您可以访问 UIButton 通过 viewWithTag() .isHidden 财产。记住在故事板中设置标记。

    view.viewWithTag(insertYourTagHere).isHidden = false