前提・実現したいこと
FSCalendarを使って、カレンダーアプリを作成中です。
Realmを使って、イベントの追加とカレンダーの日付を押したらそのイベントが表示されるようにしたいです。
発生している問題・エラーメッセージ
イベント追加まではできるのですが、日付を押したところでうまくイベントが表示されません。
該当のソースコード
swift
1 2//ViewController 3import UIKit 4import FSCalendar 5import CalculateCalendarLogic 6import RealmSwift 7 8class ViewController: UIViewController, FSCalendarDelegate, FSCalendarDataSource, FSCalendarDelegateAppearance { 9 10 @IBOutlet weak var labelDate: UILabel! 11 @IBOutlet weak var labelEvent: UILabel! 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 // Do any additional setup after loading the view, typically from a nib. 15 16 } 17 18 override func didReceiveMemoryWarning() { 19 super.didReceiveMemoryWarning() 20 // Dispose of any resources that can be recreated. 21 } 22 23 func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) { 24 let tmpDate = Calendar(identifier: .gregorian) 25 let year = tmpDate.component(.year, from: date) 26 let month = tmpDate.component(.month, from: date) 27 let day = tmpDate.component(.day, from: date) 28 //labelに日程表示 29 let da = "(year)/(month)/(day)" 30 labelDate.text = da 31 32 //スケジュール取得 33 let realm = try! Realm() 34 var result = realm.objects(Event.self) 35 //ここでString型のdateと一致させている。 36 result = result.filter("date = '(da)'") 37 print(result) 38 for ev in result { 39 if ev.date == da { 40 labelEvent.text = ev.event 41 } 42 } 43 44 } 45 46}
Swift
1//EventViewController 2import UIKit 3import RealmSwift 4 5 6class EventViewController: UIViewController { 7 8 @IBOutlet weak var eventText: UITextView! 9 @IBOutlet weak var y: UIDatePicker! 10 @IBOutlet weak var y_text: UILabel! 11 @IBAction func Add(_ sender: Any) { 12 //UIDatePickerからDateを取得する 13 let formatter = DateFormatter() 14 formatter.dateFormat = "yyyy/MM/dd" 15 y_text.text = formatter.string(from: y.date) 16 17 //データ書き込み 18 print("データ書き込み開始") 19 let realm = try! Realm() 20 try! realm.write { 21 //日付表示の内容とスケジュール入力の内容が書き込まれる。 22 let Events = [Event(value: ["date": y_text.text, "event": eventText.text])] 23 realm.add(Events) 24 print("データ書き込み中") 25 } 26 print("データ書き込み完了") 27 } 28 29 override func viewDidLoad() { 30 super.viewDidLoad() 31 32 33 // Do any additional setup after loading the view. 34 } 35 36 37 /* 38 // MARK: - Navigation 39 40 // In a storyboard-based application, you will often want to do a little preparation before navigation 41 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 42 // Get the new view controller using segue.destination. 43 // Pass the selected object to the new view controller. 44 } 45 */ 46 47} 48
swift
1//Event.swift 2import Foundation 3import RealmSwift 4 5class Event: Object { 6 7 @objc dynamic var date: String = "" 8 @objc dynamic var event: String = "" 9 10} 11
補足情報(FW/ツールのバージョンなど)
Xcode Version 10.1
Swift version 4.2.1
Githubはこちらです
https://github.com/NAKAMURAAAAAAAAAA/calendarapp2.git
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/31 04:46