繁体   English   中英

Swift 4 将数据从 NSViewController 传递到 NSTabViewController

[英]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! 要从一种类型转换为另一种类型,您必须指定一个类(或结构)类型,而不是变量或属性名称 因此,如果playlistsListsPlaylistLists类型的属性,那么您的行需要是

let destinationViewController = barViewControllers.viewControllers?[0] as! PlaylistList

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM