回答編集履歴

1

さらにコード追記

2018/06/05 04:41

投稿

hameji
hameji

スコア1380

test CHANGED
@@ -110,7 +110,7 @@
110
110
 
111
111
  // もし詳細も2行目に表示したいなら, Storyboardでcellのtypeをsubtitleに変えて、下記を記載
112
112
 
113
- cell?.detailTextLabel?.text = totalSchedule[indexPath.row].detail
113
+ cell?.detailTextLabel?.text = totalSchedule[indexPath.row].details
114
114
 
115
115
  }
116
116
 
@@ -189,3 +189,161 @@
189
189
  そのsIdをキーとしてRealmから検索し、
190
190
 
191
191
  title, detailを取得すれば解決します。
192
+
193
+
194
+
195
+ ここまでにしようと思いましたが、
196
+
197
+ どうせ、次にまた質問が立つだけかと思いますので、
198
+
199
+
200
+
201
+ 入力系も一応下に書いておきます。
202
+
203
+ まず、入力Viewは別UIViewController(UIViewController)を作りましょう。
204
+
205
+ ListViewのNavigationBar右上に「+」ボタンを配置し、
206
+
207
+ そこからpresent Modallyで別UIViewControllerに繋ぎます。
208
+
209
+ UIViewControllerにはUItextFeildを2個配置し、
210
+
211
+ それぞれその左側にUILabelで「タイトル、詳細」とし、配置しておきます。
212
+
213
+
214
+
215
+ ```Swift(InputViewController.swift)
216
+
217
+ import UIKit
218
+
219
+ import RealmSwift
220
+
221
+
222
+
223
+ class InputViewController: UIViewController, UITextFieldDelegate {
224
+
225
+
226
+
227
+ var sId: Int = 0
228
+
229
+ @IBOutlet weak var TitleTextField: UITextField!!
230
+
231
+ @IBOutlet weak var DetailTextField: UITextField!
232
+
233
+ let realm = try! Realm()
234
+
235
+ let totalSchedule = try! Realm().objects(Schedule.self)
236
+
237
+ var schedule = Schedule()
238
+
239
+
240
+
241
+ // MARK: -- UITextFieldDelegate
242
+
243
+ func textFieldShouldReturn(_ textField: UITextField) -> Bool {
244
+
245
+ self.saveToRealm()
246
+
247
+ textField.resignFirstResponder()
248
+
249
+ }
250
+
251
+
252
+
253
+ // 戻るボタンを作成したら下記を記載してください
254
+
255
+ // self.dismiss(animated: true, completion: nil)
256
+
257
+
258
+
259
+ // MARK: -- Realm
260
+
261
+ func saveToRealm() {
262
+
263
+ try! realm.write {
264
+
265
+ self.schedule.title = self.TitleTextField.text!
266
+
267
+ self.schedule.details = self.DetailTextField.text!
268
+
269
+ }
270
+
271
+ }
272
+
273
+
274
+
275
+ func makeNewData() {
276
+
277
+ if totalSchedule.count == 0 {
278
+
279
+ self.schedule.sid = 0
280
+
281
+ } else {
282
+
283
+ let lastSid = totalSchedule.sorted(byKeyPath: "sid", ascending: false).first?.sid
284
+
285
+ self.schedule.sid = lastSid! + 1
286
+
287
+ }
288
+
289
+ try! realm.write {
290
+
291
+ realm.add(self.schedule)
292
+
293
+ }
294
+
295
+ }
296
+
297
+
298
+
299
+ // MARK: -- ViewController
300
+
301
+ override func viewDidLoad() {
302
+
303
+ print("[InputView]<viewDidLoad>")
304
+
305
+ print(" ... pushed id:", self.sId)
306
+
307
+ super.viewDidLoad()
308
+
309
+ self.makeNewData()
310
+
311
+ // Do any additional setup after loading the view, typically from a nib.
312
+
313
+
314
+
315
+ self.TitleTextField.delegate = self
316
+
317
+ self.DetailTextField.delegate = self
318
+
319
+ }
320
+
321
+
322
+
323
+ override func didReceiveMemoryWarning() {
324
+
325
+ super.didReceiveMemoryWarning()
326
+
327
+ // Dispose of any resources that can be recreated.
328
+
329
+ }
330
+
331
+
332
+
333
+ }
334
+
335
+ ```
336
+
337
+
338
+
339
+ teratileで何でもかんでも1から10まで作り方を質問すればいいと言うものではありませんよ。
340
+
341
+ 自分も他の回答者も少なからず、お金をかけて習いに行ったり、講習を受けている人もいます。
342
+
343
+ 自分で勉強して見ましょう。それでもわからないところがある場合、聞く場所です。
344
+
345
+
346
+
347
+ なお、自分で作ったプログラムを流用してコードを書き換えたものなので、
348
+
349
+ ところどころ、データの名前(sid, title, details)等、間違ってたらごめんなさい。