実現したいこと
●実現したい処理の流れ
0. ViewController上のView上のカスタムcollectionView上のセルを選択。
- カスタムビュー(TabbarView)上のButtonを押す。
- ViewController上のViewに別のカスタムビュー(AddEventView)をaddsubViewする。
- AddEventView上のLabelに選択したセルのindexPath.rowを表示する。
現時点では。3.のaddsubViewは助言を貰いながらも何とか作ることができたのですが、
4.のindexpath.rowをどのように取得すれば良いのかがわからず、困っております。
当方初心者のため、
お手数ですが質問が分かりにくい、必要なソースコードが欠けている。
等がございましたらご教示ください。
よろしくお願いいたします。
該当のソースコード
viewcontroller
1class ViewController: UIViewController { 2 3 //パーツ類 4 var headerView : HeaderViewNib! 5 var monthlyView : MonthlyViewNib! 6 var tabbarView : TabbarViewNib! 7 8 var addEventView:AddEventViewNib! 9 10//MARK: - 初期画面表示 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 let bundle = Bundle(for: type(of: self)) 14 15 headerView = UINib(nibName: "HeaderViewNib", bundle: bundle).instantiate(withOwner: self, options: nil).first! as? HeaderViewNib 16 self.view.addSubview(headerView) 17 18 monthlyView = UINib(nibName: "MonthlyViewNib", bundle: bundle).instantiate(withOwner: self, options: nil).first! as? MonthlyViewNib 19 self.view.addSubview(monthlyView) 20 21 tabbarView = UINib(nibName: "TabbarViewNib", bundle: bundle).instantiate(withOwner: self, options: nil).first! as? TabbarViewNib 22 self.view.addSubview(tabbarView) 23 24 } 25 26//MARK: - TabbarView.Buttonの処理類 27 28 @objc func AddEventView(_ sender:UIButton){ 29 let bundle = Bundle(for: type(of: self)) 30 addEventView = UINib(nibName: "AddEventViewNib", bundle: bundle).instantiate(withOwner: self, options: nil ).first! as? AddEventViewNib 31 addEventView.frame = CGRect(x: 0, y: headerViewHeight + montylyWeekLabelHeight + monthlyCellHeight * 1, width: screenWidth, height: monthlyCalendarHeight - monthlyCellHeight * 1) 32 self.view.addSubview(addEventView) 33 addEventView.AddEventDateLabel.text = "ここに選択したcellのindexPaht.rowを表示したい" 34 } 35 36}
monthlyViewNib
1var monthlyCell:MonthlyCellNib! 2 3class MonthlyViewNib: UIView,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout { 4 5 @IBOutlet weak var MonthlyCollection: UICollectionView! 6 7 override func draw(_ rect: CGRect) { 8 MonthlyCollection.frame = CGRect(x: 0, y: montylyWeekLabelHeight, width: screenWidth, height: monthlyCalendarHeight) 9 MonthlyCollection.register(UINib(nibName: "MonthlyCellNib", bundle: nil), forCellWithReuseIdentifier: "MonthlyCellNib") 10 MonthlyCollection.delegate = self 11 MonthlyCollection.dataSource = self 12 } 13 14 func collectionView(_ collectionView:UICollectionView, 15 layout collectionViewLayout:UICollectionViewLayout, 16 sizeForItemAt indexPath:IndexPath) -> CGSize{ 17 return CGSize(width:monthlyCellWidth, height:monthlyCellHeight) 18 } 19 20 21 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 22 return 10 23 } 24 25 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 26 27 let cell = collectionView.dequeueReusableCell(withReuseIdentifier:"MonthlyCellNib", for: indexPath) as! MonthlyCellNib 28 print(cell.tag) 29 30 return cell 31 } 32 33} 34
monthlyCellNib
1class MonthlyCellNib: UICollectionViewCell { 2 3 override func awakeFromNib() { 4 super.awakeFromNib() 5 } 6 7}
addEventViewNib
1class AddEventViewNib: UIView { 2 3 @IBOutlet weak var AddEventDateLabel: UILabel! 4 5 override func draw(_ rect: CGRect) { 6 AddEventDateLabel.frame = CGRect(x: 0, y: 0, width: screenWidth, height: 30) 7 } 8 9}
何をやりたい(どんな画面を作りたい)のかがよく分からないので、差し支えなければ、作りたい画面のスクリーンショットかイメージ図みたいなのを貼ってもらえませんか。
回答1件
あなたの回答
tips
プレビュー