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
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
|
|
|