如何在不同的视图控制器中创建插座?
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() 方法。
【讨论】:
以上是关于如何在不同的视图控制器中创建插座?的主要内容,如果未能解决你的问题,请参考以下文章
如何在iphone的子视图页面中创建带有导航返回按钮的导航栏
Xcode 5 - iOS - 如何在没有 Storyboard 或 XIB 的情况下在 Xcode 中创建视图控制器以及如何将其配置为 AppDelegate 作为根视图