Swift隨手紀錄Day14-新首頁Part3-TableView
防止偷懶Day14 昨天接上了首頁 接下來我希望首頁能用TableView顯示出已經登陸過的球隊 然後可以點擊球隊來進入之前寫的紀錄頁面 當然這樣也需要一個按鈕來新增球隊 以及一個讓球隊可以新增隊員資料的頁面
防止偷懶Day14
昨天接上了首頁
接下來我希望首頁能用TableView顯示出已經登陸過的球隊
然後可以點擊球隊來進入之前寫的紀錄頁面
當然這樣也需要一個按鈕來新增球隊
以及一個讓球隊可以新增隊員資料的頁面
首先就來看看做完的效果應該是怎麼一個樣子的

可以看到首頁先放了五個假資料,右上方放了一個button
點擊下去跳出一個alertController可以輸入新增的隊伍名稱
輸入完隊名(目前不輸也行)按下OK會進入新的球隊人員設定頁面
按下取消則是回到首頁不做任何事情
先到HomeController.swift進行修改
內容如下
import
class
HomeController
UITableViewController
let
=
"cellId"
override
var
Bool
return
false
}
override
func
viewDidLoad
super
let
=
UIBarButtonItem
"New Team"
style: .plain, target: self
#selector
navigationItem.rightBarButtonItem =
}
func
toSetNewTeamController
let
=
UIAlertController
"Add New Team"
""
let
=
UIAlertAction
"OK"
alert -> Void
in
let
=
!
0
as
UITextField
let
=
SetNewTeamController
controller.teamTitle =
!
self
UINavigationController
true
nil
})
let
=
UIAlertAction
"Cancel"
(action : UIAlertAction
Void
in
})
alertController.addTextField { (textField : UITextField
Void
in
textField.placeholder =
"Enter Team Name"
}
alertController.addAction(saveAction)
alertController.addAction(cancelAction)
self
true
nil
}
override
func
tableView
_
tableView
UITableView
numberOfRowsInSection
section
Int
Int
return
5
}
override
func
tableView
_
tableView
UITableView
cellForRowAt
indexPath
IndexPath
UITableViewCell
let
=
UITableViewCell
cell.textLabel?
=
"TEAM LIST HERE"
return
}
override
func
tableView
_
tableView
UITableView
didSelectRowAt
indexPath
IndexPath
let
=
SetNewTeamController
controller.teamTitle =
"Exit Team Name\(indexPath.row)
present(UINavigationController
true
nil
}
}
首先是將HomeController從UIViewController的子類別改成UITableView的子類別
然後實作numberOfRowsInSection、cellForRowAt回傳5個row跟帶有textLabel的cell
再來是在viewDidLoad內實作右上的Add Team button
按鈕的動作則放在toSetNewTeamController這個function裡面
在裡面我們新增一個UIAlertController
UIAlertController內包含一個textField跟兩個UIAction
兩個UIAction一個負責取消動作,另一個則負責將新隊伍名稱跟畫面帶到下一個Controller
最後在59行設定當首頁的Row被選擇時,會將畫面送到新增的SetNewTeamController
雖然目前只有轉換畫面,之後再把資料串起來
接下來就來看SetNewTeamController的內容
import
class
SetNewTeamController
UITableViewController
let
=
"cellId"
var
String
override
var
Bool
return
false
}
override
func
viewDidLoad
super
self
=
let
=
UIBarButtonItem
"BACK"
style: .done, target: self
#selector
navigationItem.leftBarButtonItem =
let
=
UIBarButtonItem
"START"
style: .plain, target: self
#selector
navigationItem.rightBarButtonItem =
}
func
backHome
self
true
nil
}
func
toRecordController
let
=
RecordController
UICollectionViewFlowLayout
present(UINavigationController
true
nil
}
override
func
tableView
_
tableView
UITableView
numberOfRowsInSection
section
Int
Int
return
5
}
override
func
tableView
_
tableView
UITableView
cellForRowAt
indexPath
IndexPath
UITableViewCell
let
=
UITableViewCell
cell.textLabel?
=
"MEMBER HERE"
return
}
}
SetNewTeamController一樣使用tableView
並在navigationBar左右各放一個button
左邊leftBarButtonItem負責回到home
又邊rightBarButtonItem負責將畫面送到RecordController
並且navigationItem.title放上從home page設定的隊伍名稱
Done~
接下來預計做選手新增用的畫面