![](/img/trans.png)
[英]Pass data from NSViewController to another NSViewController which is in NSSplitViewController?
[英]Swift 4 pass data from NSViewController to NSTabViewController
我有一个名为 LOGIN 的 NSView 控制器
我有一个名为 LISTS 的 NSTabViewController,它有两个选项卡: playlistLists - 与类 PlaylistLists 相关联,专辑 - 与类 Albums 相关联
我需要将一个变量从 login 传递到 playlistLists,我认为这样的事情应该可以工作(来自另一篇文章),但这是针对 ios 的,而我需要针对 macOS
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let barViewControllers = segue.destination as! UITabBarController
let destinationViewController = barViewControllers.viewControllers?[0] as! FirstViewController
destinationViewController.test = "Hello TabBar 1"
// access the second tab bar
let secondDes = barViewControllers.viewControllers?[1] as! SecondViewController
secondDes.test = "Hello TabBar 2" }
所以我把它改成这样:
override func prepare(for segue: NSStoryboardSegue, sender: Any?) {
let barViewControllers = segue.destinationControlles as! NSTabViewController
let destinationViewController = barViewControllers.viewControllers?[0] as! playlistLists
destinationViewController.test = "Hello TabBar 1"
// access the second tab bar
let secondDes = barViewControllers.viewControllers?[1] as! SecondViewController
secondDes.test = "Hello TabBar 2" }
这一行我不知道如何为 macOS 更改它:
let destinationViewController = barViewControllers.viewControllers?[0] as! playlistListsts
或者也许不是正确的方法。
谢谢你的帮助
当您使用as!
要从一种类型转换为另一种类型,您必须指定一个类(或结构)类型,而不是变量或属性名称。 因此,如果playlistsLists
是PlaylistLists
类型的属性,那么您的行需要是
let destinationViewController = barViewControllers.viewControllers?[0] as! PlaylistList
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.