gpt4 book ai didi

Swift 准备 segue - 将数据从一个 View Controller 发送到另一个

转载 作者:行者123 更新时间:2023-11-28 10:17:27 25 4
gpt4 key购买 nike

我想从一个 View Controller 移动到另一个 View Controller 并发送 userId:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("chosenPerson", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "chosenPerson" {

let chosenPerson = segue.destinationViewController as? chosenPersonViewController
let indexPaths = self.collectionView!.indexPathsForSelectedItems()!
let indexPath = indexPaths[0] as NSIndexPath

chosenPerson!.userID = self.usersArray[indexPath.row].userId

}

通过单击我得到:“ fatal error :在展开可选值时意外发现 nil”我做错了什么?

最佳答案

如果你在 StoryBoard 中给出了 segue 不要在 didSelectItem 中调用这个 self.performSegueWithIdentifier("chosenPerson", sender: self) 方法

如果你在 Storyboard中给出了 segue override func prepareForSegue - 这个方法在 didSelectItem 调用之后先调用

请引用 Storyboard一次(下图示例)

我认为问题出在 self.usersArray[indexPath.row].userId 可能会返回 nil

swift 2:

self.performSegueWithIdentifier("chosenPerson", sender: self)

swift 3:

self.performSegue(withIdentifier: "chosenPerson", sender: self)

swift 2:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "chosenPerson" {

let chosenPerson = segue.destinationViewController as? chosenPersonViewController
let indexPaths = self.collectionView!.indexPathsForSelectedItems()!
let indexPath = indexPaths[0] as NSIndexPath

chosenPerson!.userID = self.usersArray[indexPath.row].userId //May it found nil please re - check array values

}

swift 3:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

if segue.identifier == "chosenPerson" {

let chosenPerson = segue.destination as! chosenPersonViewController

if let indexPath = collectionView.indexPathForSelectedItem {

chosenPerson!.userID = self.usersArray[indexPath.row].userId //May it found nil please re - check array values

}




}
}

enter image description here

关于Swift 准备 segue - 将数据从一个 View Controller 发送到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39830552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com