从第一个控制器访问第二视图控制器的控件

时间:2017-09-19 17:16:20

标签: swift xcode macos

我有一个应用程序,它有一个窗口控制器和2个视图控制器。我已经从主视图控制器中的按钮创建了一个segue到第二个视图控制器;显示模态窗口。

是否可以通过在第一个视图控制器的.swift文件中创建插座来访问位于第二个视图控制器中的控件。 ie:第一视图控制器内的第二视图控制器内的访问控制。

2 个答案:

答案 0 :(得分:0)

你想要达到什么目的? 一般来说 - 当视图控制器的视图显示时,视图控制器加载的按钮,标签或视图仅在范围内(加载到内存中)。

在显示视图之前,您很少需要初始化视图控制器并进行方法调用,因此真正的问题是您为什么要这样做。 请记住它被称为“视图控制器”,即它控制当前视图对象。 我相信你的设计存在缺陷,希望这样做。

答案 1 :(得分:0)

假设加载第二个时第一个视图控制器没有被破坏(即第二个是弹出窗口):

要在两个视图控制器之间正确通信,您需要两个部分。

执行segue时,需要将参数传递给第二个视图控制器。 https://developer.apple.com/documentation/appkit/nssegueperforming 为了与第一个视图控制器进行通信,您需要实现一个委托。即第二个视图控制器将工作委托给第一个: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html - 查看有关委派的部分。