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

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

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

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

Q&A

0回答

250閲覧

ナビゲーションバーの「+」ボタンを押すとcellを追加できるようにしたい

coco7777

総合スコア8

Swift

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

0グッド

0クリップ

投稿2022/05/08 12:30

swift初学者です。
ナビゲーションバーに+ボタンを追加して、そのボタンを押すとtable Viewのcellが追加されるようにしたいです。
画像にあるようにidentifierにcell Idと設定している、imageViewとLabelを3つ載せたセルを追加したいです。
説明不足でわかりにくいかもしれませんが、回答お願いします。

swift

1import UIKit 2 3class nikkiTableViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { 4 5 private let cellId = "cellId" 6 var cellArray = NSMutableArray.init() 7 8 var addBarButtonItem:UIBarButtonItem! 9 var searchButtonItem:UIBarButtonItem! 10 11 @IBOutlet weak var nikkiTableView: UITableView! 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 16 17 18 19 addBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addBarButtonTapped(_:))) 20 addBarButtonItem.tintColor = UIColor.white 21 22 searchButtonItem = UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(searchButtonTapped(_:))) 23 searchButtonItem.tintColor = UIColor.white 24 25 26 //navigationVarの右側に追加 27 self.navigationItem.rightBarButtonItem = addBarButtonItem 28 self.navigationItem.leftBarButtonItem = searchButtonItem 29 30 nikkiTableView.delegate = self 31 nikkiTableView.dataSource = self 32 33 34 let appearance = UINavigationBarAppearance() 35 appearance.configureWithOpaqueBackground() 36 appearance.backgroundColor = .rgb(red: 173, green: 216, blue: 230) 37 38 //標準の高さ 39 navigationItem.standardAppearance = appearance 40 //ナビゲーションバーが透過する 41 navigationItem.scrollEdgeAppearance = appearance 42 //標準の文字の大きさ 43 navigationItem.compactAppearance = appearance 44 45 } 46 47 48 49 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 50 51 return 190 52 53 54 } 55 56 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 57 58 return self.cellArray.count 59 } 60 61 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 62 63 let cell = nikkiTableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) 64 65 return self.cellArray.object(at: indexPath.row) as! UITableViewCell 66 } 67 68 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 69 70 let storyboard = UIStoryboard(name: "nikkiTableView", bundle: nil) 71 let textVC = storyboard.instantiateViewController(withIdentifier: 72 "textViewController") 73 74 navigationController?.pushViewController(textVC, animated: true) 75 //タップした後、セルの色が白色に戻る 76 tableView.deselectRow(at: indexPath, animated: true) 77 78 } 79 80 //+ボタンが押されたときのメゾットー>cellの追加を書く 81 @objc func addBarButtonTapped(_ sender: UIBarButtonItem) { 82 83 84 85 86 87 88 89 } 90 91 @objc func searchButtonTapped(_ sender: UIBarButtonItem){ 92 93 94 } 95 96 97 98 99 100 101 } 102 103 class nikkiTableViewCell: UITableViewCell { 104 105 106 @IBOutlet weak var cafeImageView: UIImageView! 107 @IBOutlet weak var nameLabel: UILabel! 108 @IBOutlet weak var dateLabel: UILabel! 109 @IBOutlet weak var hyoukaLabel: UILabel! 110 111 112 override func awakeFromNib() { 113 super.awakeFromNib() 114 115 116 } 117 118 override func setSelected(_ selected: Bool, animated: Bool) { 119 super.setSelected(selected, animated: animated) 120 } 121 122 123 124 } 125

イメージ説明

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

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

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

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

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

hoshi-takanori

2022/05/08 18:02

cellArray にセルを格納してるようですが、セルは必要に応じて TableView が管理するので、その必要はないというか、そんなことをしてはいけません。 代わりに、データを管理する配列を用意しましょう。
coco7777

2022/05/09 12:41

Hoshi-takanoriさん 回答ありがとうございます。 データを管理する配列を作ると+ボタンを押したときにcellが追加されるというのが可能になるということでしょうか? データを管理する配列を用意した後の手順を教えていただきたいです。
coco7777

2022/05/10 14:47

xg63ex2bさん 前回に続いて回答ありがとうございます!!! 参考にさせていただきます ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問