如果只有画面像的话,那也太弱了吧!
赶紧来实作新增闹钟的功能,做完拿去炫耀给边身边的人看!
可以看到上面那张图,闹钟主义显示的资讯有两个:
- 时间
- 标签
因此呢,我们可以大致想像一下流程:
step 1. 按下新增的按钮
step 2. 将时间与标签设定完毕後,按下右上角的储存
setp 3. 闹钟出现在首页
step 1.已经完成了,因此现在来完成step 2.:「取得时间 & 标签内容」
在Step 2.中,我们必须要取得「时间」&「标签内容」之後,再回传给主画面去显示新的闹钟,
通常要传送一个以上的值,我会习惯创建一个Struct去包装他,稍微介绍一下Struct:
Struct就像一个盒子,这个盒子里面要装什麽,一切都是由使用者决定的
马上来看看实例吧!
先新增一个档案,这次不选「Cocoa Touch Class」而是选择「Swift File」
将它命名为「AddAlarmInfo」
这个档案生成後应该会是空无一物的,加上以下的Code
// 创建一个Struct 名称为:AddAlarmInfo
struct AddAlarmInfo {
// 这个盒子被实体化後,里面必须要装两个变数
// 第一个:名称为time、型态为Data的变数
// 第二个:名称为annotation、型态为String的变数
let time: Date
let annotation: String
// 写一个init的Function
// 代表这个盒子被实体化後,一定要带入两个参数
// 第一个参数型态必须为Date
// 第二个参数型态必须为String
init(time: Date,
annotation: String) {
// 将带入的参数值,分配给这个盒子内原本的变数
self.time = time
self.annotation = annotation
}
}
盒子的蓝图做好後,那什麽时候会需要将它给实体化出来呢?
没错!就是使用者按下储存的那一刻,让我们继续在按下储存的Function内加点东西
回到「AddAlarmViewController」,找到之前新增的function「saveAlarm()」新增以下Code:
想了解以下标签内容的,可以参考Day15.的Delegate介绍
@objc func saveAlarm() {
// 实体化我们创建的Struct「AddAlarmInfo」,并装在saveAlarmData内
//「AddAlarmInfo」的第一个参数,就给他DatePicker上面的时间
//「AddAlarmInfo」的第二个参数,就给他标签的内容
let saveAlarmData = AddAlarmInfo(time: self.datePicker.date,
annotation: self.addAlarmDetails[1])
}
当资料已经取得也包装完後,就剩下传值到首页了,剩下的明天继续吧
<<: EP23 - [TDD] OrderPayQuery 查询付款结果 (1/2)
shutdown 用来关机的指令,这个指令只有 root 才有权力下! [root@tsai roo...
AWS Academy 学习平台建立 Learner Lab - 教师 AWS Academy Le...
Redis丛集架构目标情境 高效能与可依照效能需求线性扩增节点达到1000个 最少3个Master,...
聊天机器人虽有问答集可以回覆大部分常见问题,但难免会有疏漏。因此本研究亦设计回馈机制,若使用者发现机...
1. 条件变数的Wait方法,做了什麽? Wait方法的用途,为等待通知。 先看一下Wait方法的程...