我的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'實現。 –