如何从另一个/第二个 UIViewController 隐藏 UILabel?

Posted

技术标签:

【中文标题】如何从另一个/第二个 UIViewController 隐藏 UILabel?【英文标题】:How to hide a UILabel from another/second UIViewController? 【发布时间】:2020-12-11 18:33:09 【问题描述】:

How to hide a UILabel from another UIViewController using Notifications and Observer

您好,我正在寻找与上述链接类似的解决方案,但有没有办法反过来呢?我想在 secondVC 上有按钮,并从 firstVC 更改/隐藏 UILabel?有什么方法可以实现吗?

【问题讨论】:

我认为在这种情况下委托模式会更有意义。只需创建一个委托协议,让第一个 viewController 成为第二个的委托。然后你可以在点击按钮时通知它。 【参考方案1】:

另一种解决方案是使用closures。 为此,您可以在第二个 viewController 中定义 closure 并从第一个 viewController 中调用它。

示例如下:

在第二个视图控制器中定义:

var hideLabel: (() -> Void)?

然后在你的按钮动作中调用它:

hideLabel?()

在第一个视图控制器中你可以这样使用它:

secondVC.hideLabel =  [weak self] in
      // do what you need, hide your label

【讨论】:

以上是关于如何从另一个/第二个 UIViewController 隐藏 UILabel?的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个选项卡上的场景切换或弹出选项卡式应用程序中第一个选项卡的第二个场景?

如何使用 Ajax 从另一个页面操作引导选项卡

从一个查询中添加一个结果,然后从另一个查询中添加第二个结果

如何在 Android 中从另一个应用程序启动 Activity

如何在不指定列名的情况下从另一个表更新一个表?

如何在 JavaScript 中将 id 从另一个 const 传递给另一个 const?