ユーザーが画像のグループを表すcell
からをタップすると、TableView
そのグループ内のすべての画像が表示される別のtableViewに移動するアプリがあります。しかし、私はこれを行う方法がわかりません。
私は現在、参照を作成し、オブジェクトの配列にあるすべてのデータを取得するために必要な情報を最初に抽出しました。ただし、別のクラスからこれらの値にアクセスするにはどうすればよいですか?
データ・モデル:
struct UserImage {
var userID: String
var image: UIImage
var postNum: String
}
以下に示すように、私はこれの配列を作成していP1TableVC
ます:
let arrayOfUserImageData = [UserImage]()
データを取得して保存する関数は次のようになります。
func fetchAllUserFristImage() {
print("Description: calling of fetchAllUserFristImage()")
Database.database().reference().child("Posts").observe(.childAdded, with: {(snapshot) in
if snapshot.value as? [String: AnyObject] != nil {
let user = snapshot.key
print("Description: calling of snapshot.value is not nil ")
self.databaseRef = Database.database().reference()
let usersPostRef2 = self.databaseRef.child("Posts").child(user)
usersPostRef2.observe(.value, with: {(postXSnapshots) in
if let postDictionary2 = postXSnapshots.value as? [String:AnyObject] {
for (p) in postDictionary2 {
if let posts = p.value as? [String:AnyObject] {
print("Description: posts has value of: \(posts)")
//to get back to where i was delete the below for i
for (i) in posts {
if let imageUrlString = i.value as? [String:AnyObject], let postUrl = imageUrlString["image1"] as? String {
print("Description: inside the if let imageUrlString = i.value ")
self.feedArray.append(Post(fetchedImageURL: postUrl))
if let imageUrl = URL(string: postUrl), let imageDataL = try? Data(contentsOf: imageUrl), let image = UIImage(data: imageDataL) {
print("Description: inside the if let imageUrl = URL(string: postUrl)")
print("Description: img url's of posts: \(imageUrl)")
self.tableData.append(UserImage(userID: user, image: image, postNum: p.key))
self.tableView.reloadData()
} else {print("this user had no posts, was nil")}
}
}
}
}
}
})
//below shud stay same
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
})
}
didSelectItem
方法から選択されたデータフェッチtableData
をもとにしindexPath.row
て、次のコントローラ(次コントローラおよび/プッシュその変数にフェッチされたデータを割り当てる提示する前に変数を作る)にこのデータを渡します。
didSelectItem
:選択したデータを取得します- let data = tableData[indexPath.row]
次のコントローラーの変数に割り当てます-
let vc = nextVC() vc.fetchedData = data push/present vc
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加