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

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

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

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

受付中

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

coco7777
coco7777

総合スコア5

Swift

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

0回答

-1評価

0クリップ

106閲覧

投稿2022/05/08 12:30

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

swift

import UIKit class nikkiTableViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { private let cellId = "cellId" var cellArray = NSMutableArray.init() var addBarButtonItem:UIBarButtonItem! var searchButtonItem:UIBarButtonItem! @IBOutlet weak var nikkiTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() addBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addBarButtonTapped(_:))) addBarButtonItem.tintColor = UIColor.white searchButtonItem = UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(searchButtonTapped(_:))) searchButtonItem.tintColor = UIColor.white //navigationVarの右側に追加 self.navigationItem.rightBarButtonItem = addBarButtonItem self.navigationItem.leftBarButtonItem = searchButtonItem nikkiTableView.delegate = self nikkiTableView.dataSource = self let appearance = UINavigationBarAppearance() appearance.configureWithOpaqueBackground() appearance.backgroundColor = .rgb(red: 173, green: 216, blue: 230) //標準の高さ navigationItem.standardAppearance = appearance //ナビゲーションバーが透過する navigationItem.scrollEdgeAppearance = appearance //標準の文字の大きさ navigationItem.compactAppearance = appearance } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 190 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.cellArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = nikkiTableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) return self.cellArray.object(at: indexPath.row) as! UITableViewCell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let storyboard = UIStoryboard(name: "nikkiTableView", bundle: nil) let textVC = storyboard.instantiateViewController(withIdentifier: "textViewController") navigationController?.pushViewController(textVC, animated: true) //タップした後、セルの色が白色に戻る tableView.deselectRow(at: indexPath, animated: true) } //+ボタンが押されたときのメゾットー>cellの追加を書く @objc func addBarButtonTapped(_ sender: UIBarButtonItem) { } @objc func searchButtonTapped(_ sender: UIBarButtonItem){ } } class nikkiTableViewCell: UITableViewCell { @IBOutlet weak var cafeImageView: UIImageView! @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var dateLabel: UILabel! @IBOutlet weak var hyoukaLabel: UILabel! override func awakeFromNib() { super.awakeFromNib() } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } }

イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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さん 前回に続いて回答ありがとうございます!!! 参考にさせていただきます ありがとうございます

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Swift

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