MOBDEV課程的iOS部分項目由用Xcode製造的目標C組成。
使用Myweather應用程序,您可以:





該應用程序基於MVC模型: M ODEL, V IEW, C ONTROLLER。
該模型負責定義應用程序數據。
申請模型是城市,城市名單和預測課程。我決定使用預測類通過Open.meteo API來管理捕獲天氣信息的捕獲,並確保對用戶的平穩應用使用。
通過JSON序列化使用API。
視圖顯示模型中包含的數據並“捕獲”用戶與應用程序的交互,控制器是應用程序的大腦:它們提供視圖和模型之間的鏈接,管理視圖發送的用戶輸入,並將任何更新發送到模型。
使用UINAvigation Controller的使用使您可以快速,直觀地管理使用堆棧結構(LIFO邏輯)的多個視圖的使用。

有4個視圖控制器:
此視圖實現了位置管理器記錄,以得出用戶的當前位置,並記錄控制器以收聽預測類發送的通知,一旦完成了通過API的天氣信息請求以更新視圖。
啟動視圖(方法' ViewDidloaded ')時,控制器通過文件檢索喜歡的城市列表(3個處理名稱,緯度和經度的數組)將通過以下方式發送到控制器(如果不存在文件,則創建了它們)。
導航欄上的按鈕使您可以啟動各個視圖控制器的元素。

結果顯示在動態uitableview上,其截面和行數等於搜索結果的數量。有一個偵聽器捕獲單擊的表視圖單元格,該單元格使您可以向MyweathertableViewController發送通知,該通知將請求分配給預測以顯示天氣。
操作完成後,searchCityViewController依次收到一條通知,可以從NavigationController堆棧中彈出。
NB :可以通過實現信號的viewController的代表(通過定義協議)來替換此通知交換操作,該委託人(通過定義一個協議)發出了信號的選擇。

當用戶選擇表視圖單元格時,應用上面說明的相同過程將通知MyWeatherTableViewController以初始化預測對象並進行過渡以顯示視圖。

為了創建註釋,ViewController接收保存在文件中的最喜歡的城市的陣列,並為喜歡的城市的每對坐標繪製註釋。
有一個聽眾的註釋,該聆聽者是在所選城市中生成當前天氣請求的,並將其顯示給用戶。
