如何在不同的视图控制器中创建插座?

Posted

技术标签:

【中文标题】如何在不同的视图控制器中创建插座?【英文标题】:How can I create an outlet in a different view controller? 【发布时间】:2016-12-03 02:20:04 【问题描述】:

http://imgur.com/a/oNT6K

我想为项目创建一个出口。 UIButton 位于不同的视图控制器中。我可以在第一个视图控制器中创建出口和动作,但不能创建任何我附加的

【问题讨论】:

为什么需要在不同的viewController中创建IBOutlet和IBAction?您可以使用变量准备数据,并在 viewController 出现时将它们传递给 IBOutlet。 【参考方案1】:

如果没有任何代码,我可能会走得很远 - 如果是这样,请包含代码,它将对我们有所帮助。

我的假设是——你在一个 UIView 中有一个 UIButton(带有关联的 UIViewController),并且希望在另一个 UIView 中有代码(带有不同的 UIViewController)知道按钮被点击了。此外,您的控制器是公开的,称为“vc1”和“vc2”。

您可以通过以下方式完成此操作:

VC #1

UIButton 称为 myButton。虽然您不需要在 IB 中定义它(以及关联的 IBOutlet 和 IBAction),但我们假设您已经 - 请记住,您可以完全在代码中完成此操作。

VC #2

您希望触发一个名为 myFunction(sender: UIButton) 的函数,该函数具有所有相关优势,包括了解所单击按钮的属性。

这就是你要做的:

VC #1

@IBOutlet weak var myButton:UIButton!
@IBAction func tapped(_ sender: UIButton) 
    sender.sendAction(#selector(vc2.buttonClicked:)), to: nil, for: nil)

VC #2

public func buttonClicked(sender: UIButton) 
    // your code here

另一种选择是使用 UIButton.sendAction() 方法。

【讨论】:

以上是关于如何在不同的视图控制器中创建插座?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中建立插座连接

如何在 iPad 的视图控制器中创建多个表格视图?

在 MVC 中创建具有上下文的控制器时如何省略视图的生成?

如何在iphone的子视图页面中创建带有导航返回按钮的导航栏

Xcode 5 - iOS - 如何在没有 Storyboard 或 XIB 的情况下在 Xcode 中创建视图控制器以及如何将其配置为 AppDelegate 作为根视图

如何在标题视图 iOS 中创建故事板布局多个视图?