准备Segue:将一个VC转换为具有可选选项的另一个VC?

问题描述 投票:0回答:1

我有一个变量usernameSelected,我想发送到另一个VC。

第一个VC:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)

    let usernameSelectedRow = picUsernameArray[indexPath.row]
    usernameSelected = usernameSelectedRow
    print(usernameSelectedRow)   --> [this prints the right data]
    print(usernameSelected)      --> [this prints the right data]
    performSegue(withIdentifier: "goToProfileSelected", sender: self)

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "goToProfileSelected" {
        let destination = segue.destination as?
        OtherUserProfileViewController
        print(usernameSelected) ---> [this prints nil!!!!]
        destination!.usernameValue = usernameSelected ---> [this returns nil to second VC]
    }
}
swift uiviewcontroller uistoryboardsegue
1个回答
0
投票

确实选择了:

self.performSegue(withIdentifier: "goToProfileSelected", sender: indexPath) //pass indexPath

现在准备进行搜寻:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let index = sender as? IndexPath {
        let name = self.picUsernameArray[index.row]
        destination.usernameValue = name
    } 
}
© www.soinside.com 2019 - 2024. All rights reserved.