为什么在 prepareForSegue 中出现“Instance member '___' cannot be used on type '___'?

Why do I get 'Instance member '___' cannot be used on type '___' in prepareForSegue?

我正在尝试使用此方法将数据从一个视图控制器传递到另一个视图控制器:

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {

        if segue.identifier == "toSecondViewController" {
            let secondViewController = segue.destination as! SecondViewController

            SecondViewController.username = "Austin"
        }

    }

但是,我遇到了错误

Instance member 'username' cannot be used on type 'SecondViewController'

变量 username 已在 SecondViewController 中定义,segue 确实命名为 toSecondViewController。可能导致此错误的原因是什么?

我经常遇到这种情况。

if segue.identifier == "toSecondViewController" {
            let secondViewController = segue.destination as! SecondViewController

            SecondViewController.username = "Austin"
        }

注意 SecondViewController.username = "Austin" 的 S 是大写的。它应该是小写的。

你声明了一个变量let secondViewController as! SecondViewController 但随后您尝试在 SecondViewController 上设置 .userName,大写字母 S

您应该在变量 secondViewController 上设置 .userName。小写的 s,这是你想要的。