IOS应用开发07——城市定位及城市列表选取(代理反向传值)

本文介绍了如何在iOS应用中实现城市定位功能。通过创建LocationViewController,利用代理模式传递定位城市信息。首先,创建视图控制器并初始化表格。接着,定义协议LocationDelegate,获取城市数据(如从plist文件解析)。最后,介绍了如何在有网络连接时,通过经纬度进行定位并获取城市列表。
摘要由CSDN通过智能技术生成

需要为程序添加地理位置功能,按城市为基础分类。目前并没有城市位置信息,要实现的功能就是点击右上角的定位按钮,会在新推出的界面上显示当前的定位城市,热门城市,以及所有的城市列表,马上行动吧。实现方式有多种,比如block,代理,这里先使用代理实现

一、传值

1.新建以视图控制器(LocationViewController),里面初始化一个表格,当然目前还没有数据。

@interface LocationViewController : UIViewController
@property (nonatomic, strong) NSMutableArray *provinces;
@property (nonatomic, strong)UITableView *tableView;
@property (nonatomic, assign) id <LocationViewDelegate> delegate;
@end
这里写了一个协议,方便选中城市之后的回传,当然也可以用NSUserDefault或者其他的方式传。

2.协议LocationDelegate

@protocol LocationViewDelegate <NSObject>

- (void)choseLocalCity:(NSString *)city;

@end
3.在主页面中实现LocationDelegate,并且设置创建的LocationViewController对象的Delegate为self。

@interface CenterViewController ()<LocationViewDelegate>
LocationViewController *location = [[LocationViewController alloc] init];
    location.delegate = self;
    [self.navigationController pushViewController:location animated:YES];
4.接着CenterViewController实现协议方法choseLocalCity
- (void)choseLocalCity:(NSString *)city{
    NSLog(@"+++++++%@",city);
    self.title = city;
}
这里只做了简单的打印输出和更改标题

5.然后在LocationViewController的实现部分来初始化表格等信息

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self addNavBtnItem];
    
    [self loadLocationTableView];
}
// 加载表格
- (void)loadLocationTableView{
    
    CGRect frame = CGRectMake(0,
                              0,
                              kDeviceWidth,
                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值