我的StoryBoard上有一个名为toGuestVC
的push segue
。字符串没有从prepareForSegue传递到下一个视图控制器
我用它来Segue公司下一ViewController
在我didSelectRowAtIndexPath
方法,像这样:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let username = followUsernameArray[indexPath.row]
performSegue(withIdentifier: SG_TO_GUEST_VIEW_CONTROLLER, sender: username)
}
然后在我的prepareForSegue
:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == SG_TO_GUEST_VIEW_CONTROLLER {
if let nextVC = segue.destination as? GuestCollectionVC, let sender = sender as? String {
print("PRINTING NEXT VC: \(nextVC)") //This prints out the memory address. Not sure if this is what you meant by print nextVC.
nextVC.guestUser = sender
}
}
}
出于某种原因,这条线在我的prepareForSegue
没有运行:
nextVC.guestUser = sender.username
Wh我尝试在我的nextViewController中输出guestUser
的值,guestUser
的值是nil
。但是,当我在prepareForSegue
方法中打印出发件人的价值时,它不是nil
。
那么我的sender
值没有传递给下一个ViewController
?我无法找到解决这个问题的任何想法?
GuestCollectionVC
实现:
import UIKit
import Parse
private let reuseIdentifier = "Cell"
class GuestCollectionVC: UICollectionViewController {
var guestUser: String!
override func viewDidLoad() {
super.viewDidLoad()
print("PRINTING SELF IN GuestCollectionVC: \(self)")
loadPosts()
}
func loadPosts() {
//Load posts query
let query = PFQuery(className: PF_POSTS_CLASS)
query.limit = postCount
//Getting error here below this comment when I use guestUser since it is nil
query.whereKey(PF_POSTS_USERNAME_COLUMN, equalTo: guestUser)
query.findObjectsInBackground { (result: [PFObject]?, error: Error?) -> Void in
if error == nil {
if let result = result {
self.uuidOfPosts.removeAll(keepingCapacity: false)
self.imageArrayOfPFFIle.removeAll(keepingCapacity: false)
for postObject in result {
if let uuid = postObject[PF_POSTS_UUID_COLUMN] as? String, let pic = postObject[PF_POSTS_PIC_COLUMN] as? PFFile {
self.uuidOfPosts.append(uuid)
self.imageArrayOfPFFIle.append(pic)
}
}
self.collectionView?.reloadData()
}
}else if error != nil {
print("ERROR FROM GUEST COLLECTION VC FROM loadPosts FUNCTION: \(error?.localizedDescription)")
}
}
}
}
所以这是我在GuestViewController实施。在我loadPosts
方法,其中我使用了可变guestUser
我收到错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
'username'的值是什么? – Aaron
这是一个字符串。所以根据他们选择哪一行来抓取它。 – CapturedTree
看起来像'guestUser'属性,你试图设置稍后在一些'GuestCollectionVC'加载方法中替换,可能在'viewDidLoad'中。请向我们展示'GuestCollectionVC'实现。 –