質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

378閲覧

選択したカスタムセルのindexPath.rowをviewControllerに追加したSubViewで取得したい。

mimizuku123

総合スコア12

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/03/03 15:26

実現したいこと

●実現したい処理の流れ
0. ViewController上のView上のカスタムcollectionView上のセルを選択。

  1. カスタムビュー(TabbarView)上のButtonを押す。
  2. ViewController上のViewに別のカスタムビュー(AddEventView)をaddsubViewする。
  3. 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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/03/03 23:19

何をやりたい(どんな画面を作りたい)のかがよく分からないので、差し支えなければ、作りたい画面のスクリーンショットかイメージ図みたいなのを貼ってもらえませんか。
guest

回答1

0

ベストアンサー

選択済みなら、indexpathsforselecteditemsのfirstで取れない?

投稿2020/03/04 01:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mimizuku123

2020/03/08 09:05

これでできました! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問