swift - 如何加载到弹出窗口中的不同 View ?

标签 swift macos nsviewcontroller

我有一些代码可以打开一个显示一些文本的弹出窗口。这是通过 Action 序列而不是 Storyboard中的实际代码来完成的。有什么方法可以通过按弹出 View 上的按钮加载到不同的 View 并将其加载到下一个 View 中吗?我尝试过使用另一个 Action 转场,但它会在我按下的按钮上方将弹出窗口放入当前的弹出窗口中。谢谢!

最佳答案

这种事光靠 Storyboard是做不到的;需要一些代码。
我将这样做:不要尝试使用两个单独的弹出窗口,而是使用一个具有“嵌套”设置的弹出窗口。弹出窗口的内容 View Controller 将包含一个 Page1ViewController 和一个 Page2ViewController。首次显示时,主 Controller 将安装第 1 页的 View 。您可以将操作从第 1 页的按钮直接连接到主 Controller ,但我建议您为此使用委托(delegate)。创建一个类似 Page1ViewControllerDelegate 的协议(protocol),并在主 Controller 中采用该协议(protocol),然后在 page1ControllerRequestTransition(_:) 或您选择的任何内容的委托(delegate)方法中,只需抓取页面即可1 查看并交换页面 2 View 。您甚至可以使两个 View 具有不同的大小;弹出窗口会自动调整。

哦,别忘了禁用 translatesAutoresizingMaskIntoConstraints 并添加适当的约束来修复每个页面 View 的四个边。

关于swift - 如何加载到弹出窗口中的不同 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40468143/

相关文章:

ios - didBeginContact 未被调用

windows - 编写在 Windows 和 Mac 上运行的脚本

ios - Xcode 7.1 在模拟器崩溃时崩溃

ios - mach_vm_allocate 和 vm_allocate 有什么区别?

Mysql 5.5.10 - Mac 10.6.x - 自动启动

macos - NSViewController viewWillAppear cocoa

swift - macOS 应用程序,例如 macOS 上的 Photos.app

objective-c - 如何将 NSViewController 添加到响应链?

swift - 如果我的代码引用了 View ,我可以将我的代码放在 View 模型中吗?

ios - AVPlayer 视频 currentTime 总是返回 0