やっていること
##セルをタップして画面遷移する
// 画面遷移先のインスタンスを生成 let userProfileVC = UserProfileVC(collectionViewLayout: UICollectionViewFlowLayout()) // タップすると画面遷移 navigationController?.pushViewController(userProfileVC, animated: true)
1文目のUserProfileVCの中身を(collectionViewLayout: UICollectionViewFlowLayout())
と書く理由を教えて欲しいです。
コマンド&クリックでjumpしたら、UserProfileVCのデリゲート群を指定されて、UserProfileVCに関係することはわかったのですが、どうしてデリゲートを含めた書き方をするのかよくわかりません。
import UIKit import Firebase // private このファイル内のみアクセルできる 変換予測に出る private let reuseIdentifier = "Cell" private let headerIdentifier = "UserProfileHeader" class UserProfileVC: UICollectionViewController, UICollectionViewDelegateFlowLayout, UserProfileHeaderDelegate { // MARK: - Properties // オプショナル型でnilを許可してるのは、新しいコントローラがロードされる時、ユーザーは設定されていないから(下のfetchCurrentUserDataで取得される) var currentUser: User? //SearchVCのセルをタップした時、タップしたユーザーのProfileVCに遷移するように User.swiftを関連し、ユーザー情報を取得する // SearchVCからProfileVCに画面遷移した時、ロードするユーザー情報 var userToLoadFromSearchVC: User? override func viewDidLoad() { super.viewDidLimport UIKit import Firebase // private このファイル内のみアクセルできる 変換予測に出る private let reuseIdentifier = "Cell" private let headerIdentifier = "UserProfileHeader" class UserProfileVC: UICollectionViewController, UICollectionViewDelegateFlowLayout, UserProfileHeaderDelegate { // MARK: - Properties // オプショナル型でnilを許可してるのは、新しいコントローラがロードされる時、ユーザーは設定されていないから(下のfetchCurrentUserDataで取得される) var currentUser: User? //SearchVCのセルをタップした時、タップしたユーザーのProfileVCに遷移するように User.swiftを関連し、ユーザー情報を取得する // SearchVCからProfileVCに画面遷移した時、ロードするユーザー情報oad() // Uncomment the following line to preserve selection between presentations // self.clearsSelectionOnViewWillAppear = false // Register cell classes //collectionViewで使用するセルを登録 // forCellWithReuseIdentifier セルの再利用識別子 reuseIdentifier(任意の値)を // 新しいコレクションビューセルを作成するために使用するクラスを登録 self.collectionView!.register(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) // profileページのためにセルにしたいファイルを登録 self.collectionView!.register(UserProfileHeader.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: headerIdentifier) // 背景色 self.collectionView.backgroundColor = .white // profileVCのタブを開く時、 if userToLoadFromSearchVC == nil { fetchCurrentUserData() } }
Teratailの「質問するときのヒント(https://teratail.com/help/question-tips)」を参考に、もっと具体的な質問をしないと誰からも回答をもらえないのではないかと考えます。
UserProfileVCってなんですか?
>nakasho_devさん
すいません。通知に気付きませんでした。その資料を参考に直していきます!
>fuzzballさん
classです。
そんなことは分かっています。ふざけてるんですか?
え、ふざけてないです。
怒らないで下さい。
怒ってないです。(censored)にしているだけです。
いや、それもやめて下さいよ。笑(ってつけていいのかな)
ということで、UserProfileVCが何なのか教えて下さい。
遷移先のclassを指定する為に書いたものです。って答えじゃ質問の趣旨と違うんですよね...?
ユーザー編集する為に作られたSwiftファイルの中のclassです。も違いますかね?
>>遷移先のclassを指定する為に書いたものです
それは userProfileVC のことでは?
私が聞いているのは UserProfileVC のことです。
UserProfileVCをコマンドクリックして、jumpする先はこんな感じで、僕にはこれしかわかりません。
その下にコード書いてるんでしょ?なぜ分からないんですか?
中で何やっているかも分からないのに、書く(渡している)理由を聞かれても答えようがないのですが。
怒らないでください。
classの中身ということだったでしょうか?
怒ってないです。呆れているだけです。
そうです、中身です。
ところで「書く理由」というのは、
・なぜ UICollectionViewFlowLayout() を渡しているのか?
・(言葉通り)なぜ (collectionViewLayout: UICollectionViewFlowLayout()) と書くのか?
のどっちでしょうか?もしくは他の意味でしょうか?
僕は呆れられることに定評があります。
質問時点では、
なぜ(collectionViewLayout: UICollectionViewFlowLayout()) と書くのか?だったんですが、
現時点では、
UserProfileVCでCellとUserProfileHeaderをregisterしている影響で(collectionViewLayout: UICollectionViewFlowLayout())と記入する必要があるのかなと思いました。
上記の考え方で合っているでしょうか。
回答1件
あなたの回答
tips
プレビュー