-1

我有一个名为 LOGIN 的 NSView 控制器

我有一个名为 LISTS 的 NSTabViewController,它有两个选项卡:playlistLists - 与 PlaylistLists 类相关联,专辑 - 与 Albums 类相关联

我需要将一个变量从登录名传递到播放列表列表,我认为这样的事情应该可以工作(它来自另一篇文章),但这是针对 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

或者也许不是正确的方法。

谢谢你的帮助

4

1 回答 1

0

当您使用as!从一种类型转换为另一种类型时,您必须指定类(或结构)类型,而不是变量或属性名称。因此,如果playlistsLists是type的属性PlaylistLists,那么您的行需要是

let destinationViewController = barViewControllers.viewControllers?[0] as! PlaylistList
于 2019-02-11T19:59:21.607 回答