iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
Mobile Development

少年K的Swift奇幻漂流記系列 第 13

Day13 Swift MessageBoard APP 實作 Part1

  • 分享至 

  • xImage
  •  

MessageBoard

簡易留言板,輸入名字,內容送出之後可以利用時間排序

成品

https://ithelp.ithome.com.tw/upload/images/20240921/20168203S62D9Mtqnq.png

在開始專案之前,我們需要用到 Realm 資料庫

資料庫

在 pod RealSwift 完成之後,要先寫一個資料庫,供留言板使用

import Foundation
import RealmSwift // 導入 Realm 套件

class MessageBoard: Object {
    @Persisted(primaryKey: true) var _id: ObjectId
    @Persisted var name: String = "" // 使用者名字
    @Persisted var content: String = "" // 留言內容
    @Persisted var currentTime: String = "" // 留言的時間

    // 讓我們可以在其他頁面呼叫上面宣告的變數
    convenience init(name: String, content: String, currentTime: String) {
        self.init()
        self.name = name
        self.content = content
        self.currentTime = currentTime
   }
}

元件

// 導入 Realm 套件
import RealmSwift
// 元件變數宣告(不用自己打,從XIB 畫面直接拉再命名就好)
@IBOutlet weak var lbComments: UILabel!
@IBOutlet weak var lbUser: UILabel!
@IBOutlet weak var tbvTest: UITableView!
@IBOutlet weak var txvContent: UITextView!
@IBOutlet weak var btnSent: UIButton!
@IBOutlet weak var btnSort: UIButton!
@IBOutlet weak var txfUser: UITextField!

需要的變數

在使用資料庫之前,我們要先創建一個可以儲存資料的陣列

// 這是用來儲存資料庫(MessageBoard)的陣列
var messageArray: [MessageBoard] = []

// 排序功能,利用 true 和 false 控制,預設降序 false
var isAscending = false

tableView

在使用 tableView 之前,需要做一些事:

  • 建立一個 MainTableViewCell.swift 和 MainTableViewCell.xib
  • 在 MainViewController 裡設置代理和註冊cell
// tableView 設定
func tableSet() {
    
    // 註冊cell
    tbvTest?.register(UINib(nibName: "MainTableViewCell", bundle: nil), forCellReuseIdentifier: MainTableViewCell.identified)
    
    // 設置代理
    tbvTest.dataSource = self
    tbvTest.delegate = self
}

因為我們 UI 不只要設定 tableView,所以我們可以包一個 func,並在 viewDidLoad 中使用

// UI設定
func setUI() {
    tableSet()
    btnSent.setTitle("送出", .normal) // 送出按鈕初始化
}
override func viewDidLoad() {
    super.viewDidLoad()
    setUI()
}

結論

今天我們先學習了如何使用 CocoaPods,並在程式中導入 Realm 套件,
還有 tableView 的設定,明天會教留言板裡需要的其他 function !


上一篇
Day12 Swift ColorBoard APP 實作 Part2
下一篇
Day14 Swift MessageBoard APP 實作 Part2
系列文
少年K的Swift奇幻漂流記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言