我有一个名为LOGIN一个的NSView控制器
我有一个名为NSTabViewController列表和这个有两个标签:playlistLists - 与类PlaylistLists相关,专辑 - 与类相关的相册
我需要从登录传递一个变量来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