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接收保存在文件中的最喜欢的城市的阵列,并为喜欢的城市的每对坐标绘制注释。
有一个听众的注释,该聆听者是在所选城市中生成当前天气请求的,并将其显示给用户。
