IOS 大众点评 搜索界面实现

IOS 大众点评 地图实现(周边商铺地图) 解决方案:   1.首先在工程中创建一个继承UiViewController的 地图类;  然后再SB中拖出一个视图并与SB关联  并拖出地图的控件并右键将协议连接到当前界面  2.在系统工程当中添加mapKIt包,  并在类的.m中导入这个包;  并将 地图控件与.m关联; 3.第三步  比较重要,前两部是搭建界面,   第三步是需要解析出要用的精度和纬度,  注意解析类 阅读详情

1.目前首页界面的功能都实现了,但是在  标题的北京那个按钮的搜索功能没有实现;

2.下面3张图 是功能流程图。

反向传值实现的功能。

 

 



思路步骤:      1.图1功能已经实现。

       2.点击北京按钮    (按钮需要在自己的.m里面关联,里面不用些代码)跳转到一个新的CityListTableViewController页面,同事按住按钮 与页面关联(segue)跳转   下面是跳转方法;

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

     if ([segue.identifier isEqualToString:@"category"]) {

         CategoryDetialTableViewController * ctvc = segue.destinationViewController;

         ctvc.arr = sender;

     

//城市列表页面跳转

     }else if([segue.identifier isEqualToString:@"cityList"]){

         CityListTableViewController *cityVc = segue.destinati

onViewController;

         cityVc.delegate = self;

     }

<<CityListTableViewController.m>>

城市列表页面

 

 

3.跳转完成后, 就需要在城市列表页面中对

 

数据进行展示了, 同事需要拖出一个搜索控件,  关联自己的delegate到当前tableviewController

 

#import "CityListTableViewController.h"

#import "HomeTableViewController.h"

@interface CityListTableViewController ()<UISearchDisplayDelegate,UISearchBarDelegate>//第一个协议是实现搜索框数据改变的方法在里面,第二个是取消按钮的相关协议,实现方法在里面

@property (nonatomic,strong)NSMutableArray *citys;

@end

 

@implementationCityListTableViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

 

    NSString *path = [[NSBundle mainBundle]pathForResource:@"citys" ofType:@"plist"];

    //添加数据源数组;

    self.citys = [NSMutableArray arrayWithContentsOfFile:path];

    

    

    

}

 

 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

 

    return self.citys.count;

}

 

 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {

    

    if (tableView.tag == 1) {

        UITableViewCell *cell= [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];

        cell.textLabel.text = self.citys[indexPath.row];

        return cell;

    }else{

        UITableViewCell *cell= [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];

        cell.textLabel.text = self.citys[indexPath.row];

        cell.detailTextLabel.text = @"搜索数据";

        return cell;

    }

    

    

    

 

}

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString*)searchString{

    NSMutableArray *newCitys= [NSMutableArray array];

    for (NSString *city in self.citys) {

        if ([city rangeOfString:searchString].length>0) {

            [newCitys addObject:city];

        }

    }

    //在遍历完了之后在返回给数据源数组;

    self.citys = newCitys;

    //还有一个情况就是空的情况

    if (!searchString||[searchString isEqualToString:@""]) {

        NSString *path = [[NSBundle mainBundle]pathForResource:@"citys" ofType:@"plist"];

        NSMutableArray *arr =[NSMutableArray arrayWithContentsOfFile:path];

        self.citys = arr;

    }

    //刷新数据源

    [self.tableView reloadData];

    

    return YES;

}

- (void)searchBarCancelButtonClicked:(UISearchBar*)searchBar{

    //如果点取消,应该是数据源数组重置一下;

    //数据源重新加载

    NSString *path = [[NSBundle mainBundle]pathForResource:@"citys" ofType:@"plist"];

    self.citys = [NSMutableArray arrayWithContentsOfFile:path];

    [self.tableView reloadData];

}

 

 

 

4.以上代码是搜索列表的所有功能的实现。     现在的问题就剩:  当我点击城市列表的对应的Cell时候,将对应的数值反向传值到首页界面,并

将按钮的显示信息更换,  同时更换首页的数据源显示信息: (也就是改变首页的 解析字典的判定,)

 

 

5.跳转方法里面实现的内容

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{

   

    HomeTableViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeTableViewController"];

    NSString *cityNames = self.citys[indexPath.row];

    [vc backCityName:cityNames];

    [self.navigationController pushViewController:vc animated:YES];

    

}    跳转方法实现内容的解释: 在跳转的时候创建A页面,跳转过去,同时将对应的数据传递给一个字符串类型;  同时在A类的.H中声明

方法供B类调用   这样A类才能得到传递回去的城市名称,  才能更改按钮的名称, 以及首页的数据;

 

这里要知道反向传值的流程

1.在B类的.h中声明一个A类型的weak属性delegate

2.在A类中创建完B类的时候给B类型对象的delegate属性赋值 

3.在A类的.h中声明方法供B类调用 如果需要传递回来参数那该方法声明时需要带参数

4.在A类中使用此方法;

 

计算机生成了可选文字:CityListTableViewController *cityVc cityVc. de legate self; segue. destinationViewControtter;

 

 

计算机生成了可选文字:HomeTab1eViewController (self. storyboard instant iateV iewCont ro lerWithIdent HomeTableViewCont rot ler" self. citys (indexPath. row) ; NSSt ring *cityNames — backCityName : cityNamesl ; self. navigationController pushViewController: animated : YES

 

计算机生成了可选文字:) backCityName: (NSSt ring cityName( void self. btnTitle setTitle:cityName

 

 在viewWillAppear里面写最后一个;    写完这些,恭喜你,搜索功能完成了;

 

<<HomeTableViewController.m>>

主页页面

第一次加载的时候显示3张个性化,  第二次加载就直接不显示3张个性化了

 NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

    int runCount = [ud integerForKey:@"runCount"];

   runCount ++ ;

    [ud setInteger:runCount forKey:@"runCount"];

    [ud synchronize];

    //声明一个轻量级技术方法;

    //声明一个数字记录, 每次记录的时候需要把之前的数字取出来,如果数字没有值就证明是第1次

    //每次取值后都应该 让计数+1;

    //通过方法将记录在ud当中   键值为runCount的对应计数属性 取出来,  并同步

    //简单计数方法实现。

   

    //如果runCount为1,证明系统是第一次进来,  第一次进来就要显示个性化界面

    if (runCount == 1) {

        //只有ViewController才有storyBord,当前self指的是AppDelegate.

        //先拿到根才可以拿到storyBord

        UIViewController*appView = self.window.rootViewController;

        ViewController *vc =[appView.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];

        self.window.rootViewController =vc;

IOS 大众点评 首页界面 仿真实现 1.得到大众点评的API接口,  API接口中有相应的对应数据返回的方法 +(NSMutableArray *)requestBusinessesWithParams:(NSMutableDictionary*)params; //请求团购 +(NSMutableArray *)requestDealsWithParams:(NSMutableDictionary *)params; 阅读详情

相关推荐

逆向实战:拆解大众点评小程序mtgsig1.2签名协议与w1.6模块

在网络请求安全领域,签名与加密是保障数据完整性与身份验证的核心技术。其基本原理是通过特定算法对请求参数进行摘要或加密运算,生成唯一的签名值,以防止数据篡改和重放攻击。这项技术的价值在于为Web应用、API接口及移动端应用构建了关键的安全防线,广泛应用于金融支付、数据接口调用等对安全性要求极高的场景。本文以一次具体的逆向工程实践为例,深入剖析了大众点评小程序中采用的综合性签名方案——mtgsig1.2协议。该方案不仅包含了常规的参数规范化与哈希运算,其核心更在于集成了一个名为w1.6的WebAssembly模

weixin_34034261的博客 426

IOS中UISearchController搜索框筛选功能实现

在之前的博客中,我曾写过一个搜索框功能的一个实现!有时候,我们需要利用搜索框进行对数据的一个筛选,比如qq的联系人功能上面的搜索筛选功能的实现!

凉城旧梦的博客 8565

iOS端大众点评网地图应用开发实战

MapKit框架是iOS平台下用于集成地图服务的一套API。开发者可以通过MapKit来创建功能丰富、视觉效果优良的地图应用,它提供了一系列用于显示、操作和添加内容到地图上的API接口。框架中的MKMapView控件能够展示地图视图,而MKAnnotation接口允许开发者在地图上添加自定义的标记点(如用户位置、兴趣点等)。MapKit还内置了地图上覆盖物(如标注、多边形等)的绘制功能,以及路径规划和方向服务。

weixin_29069575的博客 1205

h5跳转App以及URL Scheme获取-App协议列表

从Safari跳到APP 跳转 既然要想跳到你指定的APP,那么就需要在你的APP中定义一个特殊的标示,也就是一个URL协议。 定义URL协议的如下图TARGETS ——> info ——>URL Types——>添加一个URL协议 Snip20171031_9.png URL Schemes——就是你这个APP的特殊标示indentifier——这个URL协议的...

細水、長流√的专栏 8074

大众点评下拉筛选

大众点评下拉筛选时,选择条件的tableview

仿大众点评APP简单布局

仿大众网APP简单的实现,想做商城APP的可以下载进行参考。

不仅能搜索还能查信息 带你了解LBS应用

关于这个概念相信有很多人都对其一知半解,所以我们就用用户使用较多的“街旁”来代替,其实“街旁”的真正含义就是英文名为LBS的应用。举个典型的例子,如果你没有用过“街旁”,如果你不懂LBS,那你肯定使用过大众点评网站,而大众点评网就是典型的LBS应用,用户可以通过网络定位自己的精确位置,然后再搜索周边的一些相关设施。 LBS正是当下的大热应用     说到LBS,那么究竟是什么LBS呢?

凌风探梅的专栏 1714

ECU-TEST新手入门:从软件申请到第一个测试包创建的完整保姆级流程

本文详细介绍了ECU-TEST软件从申请试用、安装配置到创建第一个测试包的完整流程。针对新手用户,提供分步指导,包括界面认知、测试组件添加、变量定义及执行结果分析,帮助快速掌握汽车电子测试工具的基本操作。特别说明试用授权的两种获取方式和安装注意事项。

weixin_30606461的博客 481

美团大众点评合并:背后技术力量的对比回顾

美团网和大众点评网在10月8日中午联合发布声明,宣布达成战略合作,两者将共同成立一家新公司。两者也在InfoQ及其组织的大会上进行过多次分享,我们将对美团和大众点评使用的技术进行回顾,来看看这两家电商巨头的技术实力。 美团和大众点评都是国内O2O领域的主要参与者。除了团购外,美团还有自营的外卖、电影、酒店预订等业务。大众点评网最开始主要为用户提供各种生活信息服务,基于这些信息开发

IDO老徐软件测试窝 2088

Python爬虫(一)京东商品价格及详情页抓取

这是一个以http://item.jd.com/2957726.html为例的单网页抓取案例 import urllib.request; #载入urllib.request,用于获取页面html源代码 from pandas import Series; #载入series包 from pandas import DataFrame; #载入dataframe包 from bs4 impo

Data Proc 1万+

PADS Logic VX2.5元件绘制全流程:从零开始创建自定义元件库

本文详细介绍了在PADS Logic VX2.5中从零开始创建自定义元件库的全流程。内容包括理解PADS独特的四库分立结构、绘制原理图符号(CAE封装)、关联PCB封装、创建元件类型以及最终的调用验证。掌握元件绘制技能能从根本上提升设计效率、确保设计规范统一,并从源头杜绝原理图与PCB之间的关联错误,是硬件工程师必备的核心能力。

oo7890的博客 444

GitChat · 测试 | 大众点评搜索测试全揭露:1:9 的测试开发比下 QA 如何前行

GitChat 作者:梦婷 关注微信公众号:GitChat 技术杂谈 ,一本正经的讲技术 本人2012年7月以应届生身份进入大众点评搜索团队,整个团队QA(测试)共3人(包括我,后1人于11月离职),RD(开发)约15人;2013年,QA依旧只有2人,RD增加至20人;2014年8月起因承接

技术杂谈 4283

c语言面试5(希诺麦田)

在 C 语言中,当使用strlen函数计算字符串的长度时,它会返回字符串中字符的实际个数,不包括字符串结束符’\0’。而sizeof(array)返回的是array指针所占用的字节数,通常在 32 位系统上为 4 个字节,在 64 位系统上为 8 个字节。在给定的代码中,array被初始化为"\0\0",其中包含两个转义字符’\0’。当使用strlen函数计算array的长度时,它会遇到第一个’\0’并停止计数,因此返回的长度为 2。12.下面四个选项是四个整数在内存中的存储情况,其中数值最大的一个是。

Pierce110110的博客 1053

朋友圈新增访客记录?大众点评辟谣”被放弃”;百度 7 款 APP 进入 App Store 前十 | 极客头条...

「优快云 极客头条」,是从 优快云 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道。风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时...

优快云资讯 2490

Win10 系统下VisualStudio2022 配置Open3D-0.18.0(C++)

Win10 系统下VisualStudio2022 配置Open3D-0.18.0

点云侠的博客 2657

基于Matlab使用雷达资源管理有效跟踪多个机动目标仿真(附源码)

多功能雷达可以搜索目标,确认新轨道,并重新访问轨道以更新状态。为了执行这些功能,多功能雷达通常由资源管理器管理,该资源管理器创建用于搜索、确认和跟踪的雷达任务。这些任务是根据优先级和时间安排的,因此,在每个时间步长中,多功能雷达都可以将其波束指向所需的方向。在此示例中,对于用于跟踪机动目标的雷达,有两个相互冲突的要求:目标的数量及其初始位置通常事先不知道。因此,雷达必须不断搜索感兴趣的区域才能找到目标。此外,雷达需要在进入雷达覆盖区域后立即检测并建立对每个目标的跟踪。目标机动的时间段事先是未知的。

珞瑜的博客 3146

鸿蒙首发!美团、大众点评率先落地室内精准定位

在复杂的商场环境中,用户可轻松获取清晰的路径指引,一键导航至目标商户、电梯或出入口,有效解决以往找店难、绕路多、定位不准的困扰,让线下消费体验更加顺畅自然。与此同时,鸿蒙生态应用持续探索体验创新,美团、大众点评在鸿蒙端首发室内精准定位功能,相比iOS与安卓版本,以及同类应用,均实现行业领先,持续推动“吃喝玩乐行”体验升级,标志着本地生活服务在鸿蒙生态中率先突破了“最后十米”的导航难题。伴随华为畅享90系列新机的发布,这种“更精准、更智能、更流畅”的本地生活服务体验,也将成为更多鸿蒙用户的日常。

2201_75994616的博客 23

QT如何使用CTK插件搭建应用程序框架?

CTK框架,QT框架,插件系统

cs821984831的博客 735

一款可让大型iOS工程编译速度提升50%的工具

总第435篇2021年 第005篇本文介绍了美团平台自研的一款cocoapods 插件,该插件可以大幅提升 iOS 工程代码的编译速度。文章前半部分主要介绍相关的原理,后面主要阐述在工...

美团技术团队 6321

手把手教你学Simulink——基于AI融合与智能调度的场实例:强化学习在卫星资源分配中的应用

本文详细介绍了如何利用Simulink和强化学习技术实现智能卫星资源分配。文章首先分析了低轨卫星通信系统面临的动态资源调度挑战,提出采用强化学习(特别是PPO算法)的解决方案。接着逐步展示了完整的建模过程:从Simulink项目创建、卫星通信环境建模(用户业务、信道特性、资源池),到强化学习任务定义(状态空间、动作空间、奖励函数),再到PPO智能体的构建与训练。最后通过仿真验证,PPO智能体在系统吞吐量、公平性和阻塞率等关键指标上均优于传统方法。该方案为卫星通信系统的智能资源管理提供了可行方案,并支持进一步

MHD0815的博客 190

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android lbs查询距离,不仅能搜索还能查信息 带你了解LBS应用

关于这个概念相信有很多人都对其一知半解,所以我们就用用户使用较多的“街旁”来代替,其实“街旁”的真正含义就是英文名为LBS的应用。举个典型的例子,如果你没有用过“街旁”,如果你不懂LBS,那你肯定使用过大众点评网站,而大众点评网就是典型的LBS应用,用户可以通过网络定位自己的精确位置,然后再搜索周边的一些相关设施。LBS正是当下的大热应用说到LBS,那么究竟是什么LBS呢?其实LBS英文全称为Lo...

weixin_33906021的博客 1215

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iOS 开发中的争议(二)

iOS 开发中的争议(二) Mar 22nd, 2015 打算分享一些有争议的话题,并且表达一下我的看法。这是该系列的第二篇。 在本文中,我想讨论的是:对于 UI 界面的编写工作,到底应该用 xib/storyboard 完成,还是用手写代码来完成? 本着 “使用过才有发言权” 原则,我介绍一下我的经历: 最早在网易开发 “ 有道云笔记 ” 的时候,我们是使用 xib 来制

小朴朴的博客 682

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

iOS10新特性

一、锁屏 iOS10的UI设计在总体上没有明显的变化,但是锁屏界面还是做了重新设计,锁屏状态下可以显示更丰富的通知内容,向右滑动直接进入拍照界面,左滑则有丰富的插件集成。在锁屏状态下使用3D Touch,可以直接管理通知和各项操作,无需解锁进入系统。 二、控制中心 iOS0对控制中心作出了巨大改变,首先是改进了UI设计,布局更加合理,功能更加丰富,控制中心支持左右滑动,新

638

[绍棠] iOS10新特性

下面让我们盘点一下iOS10有哪些新特性。 一、锁屏 iOS10的UI设计在总体上没有明显的变化,但是锁屏界面还是做了重新设计,锁屏状态下可以显示更丰富的通知内容,向右滑动直接进入拍照界面,左滑则有丰富的插件集成。在锁屏状态下使用3D Touch,可以直接管理通知和各项操作,无需解锁进入系统。 二、控制中心 iOS0对控制中心作出了巨大改变,首先是改

绍棠的博客 665

App开发团队必须知道的 iOS 11 更新点

WWDC 2017 已经过去差不多一个季度了,最近随着 Xcode 9 正式版以及 iPhone 8、iPhone X 的发布,iOS 11 的全面适配也被提上了日程。我整理了一下更新点,包括开发、设计、产品甚至是市场都应该注意的点,分享出来希望对大家有所帮助。 新增框架 ARKit iOS 11 引入了新的 ARKit 框架,让您轻松创建无可比拟的 iPhone 和 iPa

iOS学习的博客 1441
上一篇: IOS 大众点评 团购界面实现
下一篇: IOS 大众点评 地图实现(周边商铺地图)
NameUseNsstring
博客等级 码龄11年 1粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值