昨天用好了計時器的部分,今天就開始來用世界時鐘吧。
世界時鐘其實不會太難,只是會有一些細節需要處理,那一開始先拉出兩個畫面,一個是負責顯示,只需要一個TableView,另一個是負責搜尋的,需要一個TableView和一個SearchBar。
要建立世界時鐘,首先要先想辦法取得時區的名字,所以這裡使用NSTimeZone來取得,取得之後存進陣列裡,方便取用。
var TimeZones = [String]()
TimeZones = NSTimeZone.knownTimeZoneNames
在取得所有時區之後,如何才能從裡面搜尋到你要的時區,這裡是利用SearchBar的某個函式來完成搜尋的。
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if SearchPageSearchBar.text != ""{
TimeZones = NSTimeZone.knownTimeZoneNames.filter({$0.localizedCaseInsensitiveContains(SearchPageSearchBar.text!)})
}else{
TimeZones = NSTimeZone.knownTimeZoneNames
}
SearchPageTableView.reloadData()
}
這樣一來,每當SearchBar裡的內容改變時,TableView也會顯示出跟SearchBar內容相近的所有結果。
最後來處理畫面的切換吧,這裡是利用Navigation來切換畫面的,首先要在顯示畫面裡要觸發切換畫面的地方打上下面的程式,而SearchPageVC是你要切換到的畫面。
let SearchPageVC = SearchPageViewController()
self.navigationController?.pushViewController(SearchPageVC, animated: true)
現在可以“跳到下一頁”了,還需要“返回上一頁”,利用Navigation切換畫面,上一個畫面是會跟現在的畫面堆疊,所以程式只需要pop出來就好。
self.navigationController?.popViewController(animated: true)
那麼,今天世界時鐘到這裡結束,明天來處理傳值的部分。