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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

解決済

2回答

660閲覧

Realmを使ってデータを保存したいがボタンが反応しない

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2019/09/01 02:01

編集2019/09/01 03:06

今、メモアプリを作っていて保存のボタンを作成して関連付けなどはしっかりと行ったのですが、押しても保存されませんでした。問題を切り分けるためにその保存ボタンのところにブレークポイントを設置しデバッグしてみたのですが、ブレークポイントが発動しませんでした。どうすればよろしいのでしょうか。教えていただくようお願いします。

参考にしているサイトがありまして、 https://qiita.com/atsushi_takao/items/b54ba921d48f43e3458b です。
これを参考に自分の環境でビルドしてみたいと思ったのですが、反応しませんでした。

swift

1 2import UIKit 3 4class AddViewController: UIViewController, UITextFieldDelegate, UITextViewDelegate { 5 6 @IBOutlet weak var Title: UITextField! 7 @IBOutlet weak var Text: UITextView! 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 // Do any additional setup after loading the view. 12 13 Title.delegate = self 14 Text.delegate = self 15 } 16 17 @IBAction func Save() { //StoryBoard上で関連付けは完了しています 18 if Title.text != "" { 19 if Text.text != "" { 20 let newDiary = Diary.create() 21 newDiary.title = Title.text! 22 newDiary.note = Text.text 23 let today = Diary.changeDateType(date: Date()) 24 newDiary.date = today 25 newDiary.save() 26 self.navigationController?.popViewController(animated: true) 27 } else { 28 SimpleAlert.showAlert(viewController: self, title: "内容がありません", message: "内容を描いてください", buttonTitle: "OK") //別のファイルでAlertの設定は完了しています 29 } 30 } else { 31 SimpleAlert.showAlert(viewController: self, title: "タイトルがありません", message: "タイトルを書いてください", buttonTitle: "OK") //別のファイルでAlertの設定は完了しています 32 } 33 34 } 35} 36

イメージ説明

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

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

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

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

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

hameji

2019/09/01 02:19

コードは問題なさそうですが、、、 ちゃんとIBActionが設定できているかは、 storyboardのconnections inspectorのスクリーンショットをつけてくれないと 判断できませんが、、、
退会済みユーザー

退会済みユーザー

2019/09/01 02:27

hameji様、スクリーンショットを追加しました。確認の方をよろしくお願いします。
hameji

2019/09/01 02:45 編集

storyboardでも問題なさそうに見えますね。 コードは手動で打ち込んで、繋いだんですか? outlet側から作ったら、 @IBAction func save(_ sender: Any) { } となると思いますが、、、 もう一度作り直したらどうですか? あと、 @IBAction func save() { print("ボタンが押されたよ") print("Title: :", Tittle.text) print("text: ", Text.text) と一番先に入れて、それぞれがきちんと動くかみてみてください。 ボタンが反応しないのと、保存ができないのは別問題んですからね。
退会済みユーザー

退会済みユーザー

2019/09/01 02:47

hameji様、もう一度Storyboardの方からbuttonの関連付けをやり直して上記のようにprint("ボタンが押されたよ")などとコードを書いたのですが、下のコンソールにはボタンを押しても反応がありませんでした。
guest

回答2

0

ベストアンサー

以前にここで質問している人で、
全部の一番上にUIScrollViewを配置してて、
ボタンが反応しなかったという人がいましたが、

Main storyboardの
イメージ説明

こういうキャプチャ画面をお願いできないですか?

投稿2019/09/01 02:55

hameji

総合スコア1380

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

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

退会済みユーザー

退会済みユーザー

2019/09/01 03:07

hameji様、質問の方に写真を追記しました。確認の方をよろしくお願いします。
hameji

2019/09/01 03:19 編集

自分のと比べると、NavigationBarが不要なんだと思います。 NavigationControllerを上のViewで使っていますよね。 なら、NavigationBarは不要ですよ。
退会済みユーザー

退会済みユーザー

2019/09/01 04:58

hameji様、NavigationBarが邪魔していたそうです。この問題に関しては解決いたしました。ありがとうございました。
guest

0

http://somen.site/2018/02/02/realmswift%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E6%B0%B8%E4%B9%85%E4%BF%9D%E5%AD%98%E7%89%88-swift4-0/#i-17

Realmの文法はこのサイトがわかりやすくておすすめです。

まず、podfileにrealmはinstallしてありますか?してあれば
import UIKit
import RealmSwift
のようにrealmをswiftのファイルでimportしてください。

していないのであれば、podfileにpod 'RealmSwift'を追加。
そうすれば、realmが使えるようになります。

値の保存は

swift

1do { 2 let realm = try Realm() 3 4 let contents = Contents() 5 contents.memo = "新宿で" 6 contents.price = 120 7 try! realm.write { 8 realm.add(contents) 9 print("成功だよ", contents) 10 } 11} catch { 12 print("エラーだよ") 13}

のように書けばできます。

あと、デバッグ方法ですが、printを使い変数が代入されているかを確認する方法もあります。今回の場合ですと、newDiary.note = Text.textのあとに、print(Text.text)とかいて、値が取れているか、さらに、saveのアクションが行われているか確認できます。

buttonの関連付け
![イメージ説明]
イメージ説明

投稿2019/09/01 02:28

編集2019/09/01 03:02
roge

総合スコア12

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

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

hameji

2019/09/01 02:55

ボタンが反応しないという質問みたいですよ
roge

2019/09/01 03:00 編集

buttonの関連付けで困っているようなので、追記しました。 storyboardを開いて、右上の円が二つ絡まった形のボタンを押していただくと、swfitのファイルが表示されるので、storyboard上のbuttonをcontrolを押しながらマウスでswiftファイルの任意の行にドラッグアンドドロップしてください。名前だけつけてconnectしてください。僕の画像と接続が異なるので、接続の仕方が間違っているかもしれません。segueではないはずです。
退会済みユーザー

退会済みユーザー

2019/09/01 03:09

roge様、関連付けに困っているのではなく、ボタンのコードが書かれているにも関わらず、そのコードが実行されないことが困っています。具体的な質問でなくてすみません。
roge

2019/09/01 03:16 編集

bar button itemの直下にあるbuttonに関連付けはされてますか? bar button item に関連付けされてると動かないようです。 buttonが動かない原因は関連付けがメインな原因なので、一応もう一度確認していただきたいです。
退会済みユーザー

退会済みユーザー

2019/09/01 05:01

roge様、関連付けがうまく行ってないためにエラーが出ていたようです。教えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問