iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
Mobile Development

IOS新手之旅系列 第 7

IOS新手之旅 Day7:世界時鐘(1)

  • 分享至 

  • xImage
  •  

昨天用好了計時器的部分,今天就開始來用世界時鐘吧。

世界時鐘其實不會太難,只是會有一些細節需要處理,那一開始先拉出兩個畫面,一個是負責顯示,只需要一個TableView,另一個是負責搜尋的,需要一個TableView和一個SearchBar。

TimeZone

要建立世界時鐘,首先要先想辦法取得時區的名字,所以這裡使用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

最後來處理畫面的切換吧,這裡是利用Navigation來切換畫面的,首先要在顯示畫面裡要觸發切換畫面的地方打上下面的程式,而SearchPageVC是你要切換到的畫面。

    let SearchPageVC = SearchPageViewController()

    self.navigationController?.pushViewController(SearchPageVC, animated: true)

現在可以“跳到下一頁”了,還需要“返回上一頁”,利用Navigation切換畫面,上一個畫面是會跟現在的畫面堆疊,所以程式只需要pop出來就好。

    self.navigationController?.popViewController(animated: true)

那麼,今天世界時鐘到這裡結束,明天來處理傳值的部分。


上一篇
IOS新手之旅 Day6:計時器(3)
下一篇
IOS新手之旅 Day8:世界時鐘(2)
系列文
IOS新手之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言