You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

174 lines
4.9 KiB

//
// WiFiListViewController.m
// tongxin
//
// Created by ecell on 2020/10/30.
// Copyright © 2020 xTT. All rights reserved.
//
#import "WiFiListViewController.h"
#import "WIFIModel.h"
#import "TableCell.h"
#import "SVProgressHUD.h"
@interface WiFiListViewController () <UITableViewDelegate,UITableViewDataSource>
@property (strong, nonatomic) UITableView *myTableView;
@property (strong, nonatomic) WIFIModel *model;
@property (strong, nonatomic) NSMutableArray *wifiArr;
@property (strong, nonatomic) id observe;
@end
@implementation WiFiListViewController
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self loadData];
}
- (void)viewDidLoad {
[super viewDidLoad];
WEAKSELF
_wifiArr = [NSMutableArray new];
[self initUI];
_observe = [[NSNotificationCenter defaultCenter] addObserverForName:AccountMessageNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
NSDictionary *dic = note.object;
NSDictionary *msgDic = dic[@"message"];
NSString * msgType = msgDic[@"type"];
if(!msgType || !msgDic){
return ;
}
if([msgType isEqualToString:@"wifi"]) {
NSArray *wifi = msgDic[@"wifi"];
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *evaluatedObject, NSDictionary<NSString *,id> * _Nullable bindings) {
NSString *name = evaluatedObject[@"ssid"];
if ([name isEqualToString:@""]) {
return NO;
} else {
return YES;
}
}];
NSArray *filterArray = [wifi filteredArrayUsingPredicate:predicate];
[weakSelf.wifiArr removeAllObjects];
[weakSelf.wifiArr addObjectsFromArray:filterArray];
[weakSelf.myTableView reloadData];
[weakSelf dismissHUD];
}
xLog(@"%@", dic);
}];
}
- (void)loadData{
WEAKSELF
[WIFIModel getWIFIDataListSuccess:^(WIFIModel * _Nonnull model) {
weakSelf.model = model;
[weakSelf.myTableView reloadData];
[weakSelf showHUD];
} failure:^(NSError * _Nonnull error) {
[weakSelf showHUD];
}];
}
- (void)showHUD {
[UICommon MessageSuccessText:@"正在检索附近wifi,请保持手机与设备处于同一网络环境" isImg:NO];
[self performSelector:@selector(dismissHUD) withObject:nil afterDelay:15.0];
}
- (void)dismissHUD {
[UICommon HidenLoading];
}
- (void)initUI{
self.title = @"WIFI列表";
_myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight-getRectNavAndStatusHight) style:UITableViewStylePlain];
_myTableView.backgroundColor = tabViewBG;
_myTableView.delegate = self;
_myTableView.dataSource = self;
[self.view addSubview:_myTableView];
_myTableView.bounces = NO; //禁止弹跳
_myTableView.showsHorizontalScrollIndicator = NO;
_myTableView.showsVerticalScrollIndicator = NO;
//去线
UIView *view = [UIView new];
view.backgroundColor = [UIColor clearColor];
[_myTableView setTableFooterView:view];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.wifiArr.count;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0) {
return 0.01;
}
return 15 * FIX_SCREEN;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 49;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSDictionary *wifi = self.wifiArr[indexPath.row];
TextFieldCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TextFieldCell"];
if (!cell) {
cell = [[TextFieldCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"TextFieldCell"];
cell.accessoryType = UITableViewCellAccessoryNone;
cell.textLabel.text = wifi[@"ssid"];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *wifi = self.wifiArr[indexPath.row];
[[NSNotificationCenter defaultCenter] postNotificationName:@"select_wifi" object:wifi];
[self.navigationController popViewControllerAnimated:YES];
NSLog(@"wifi = %@", wifi);
}
- (void) viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
if (_observe) {
[[NSNotificationCenter defaultCenter] removeObserver:_observe];
}
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(dismissHUD) object:nil];
xLog(@"===removeObserver====")
}
@end