BaseViewController

@interface BaseViewController : UIViewController

@property (nonatomic,retain)NSMutableArray*dataSource;//数据集合 用于存储请求解析后的数据

@property (nonatomic,retain)NSMutableArray*secondarry;//数据集合 用于存储其他的数据

@property (nonatomic,retain)MydataModel *mydateModel;//存储用户信息

@property (nonatomic,retain)NSMutableArray *imagePathArray;//图片地址

@property (nonatomic,assign)BOOL keyboardIsVisible;//判断键盘是否弹出

@property (nonatomic,assign) long memID;

@property (nonatomic,assign) long isFouClient;

//@property (nonatomic,retain)

- (BOOL)isloginIn;//判断是登录;

- (void)ShowSVProgressHUD:(NSString *)text;//请求等待提示

- (void)DismissSVProgressHUD;//移除等待

- (void)alterViewShow:(NSString*)text;//弹窗提示

///上图下字

- (void)initButton:(UIButton*)btn;

///拨打电话

- (void)cellPhone:(NSString *)phone phoneTite:(NSString *)tite;

//让键盘消失

-(void)hideKeyBoard;

//找到指定的storyboard

-(UIStoryboard*)getSelectStoryboard:(NSString*)name;

//设置状态栏颜色

- (void)setStatusBarBackgroundColor:(UIColor *)color;

//去除多余分割线

-(void)setExtraCellLineHidden: (UITableView *)tableView;

//清除指定cell的分割线线

-(void)cleanCellLine:(UITableViewCell*)cell andTableView:(UITableView*)tableView;

//界面跳转 viewController:将跳转的界面  animated:是否动画

- (void)setContentViewController:(UIViewController *)viewController  animated:(BOOL)animated;

- (void)addPopupView:(NSString *)PopString andView:(UIViewController*)viewController;

//AFNetWorking的Get请求方法,Dictionary可为空nil

- (void)AFHTTPGetWithURLString:(NSString *)urlString Dictionary:(NSDictionary *)dictionary Succeed:(void(^)(id responseObject))Succeed Failured:(void(^)(NSError *error))Failured;

//AFNetWorking的POST请求方法,Dictionary可为要传的字典

- (void)AFHTTPPOSTWithURLString:(NSString *)urlString Dictionary:(NSDictionary *)dictionary Succeed:(void(^)(id responseObject))Succeed Failured:(void(^)(NSError *error))Failured;

@end

@interface UIView (Finder)

- (UIView*) findFirstResponderView;

@end


- (void)viewWillAppear:(BOOL)animated{

    self.tabBarController.tabBar.hidden  =YES;

    [self.navigationController setNavigationBarHidden:NO animated:animated];

    self.isFouClient = self.mydateModel.isClient;


}

- (void)viewWillDisappear:(BOOL)animated{


    [self DismissSVProgressHUD];

}

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    self.navigationItem.title = self.title;


    UIBarButtonItem *backItem =[[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

    self.navigationItem.backBarButtonItem =backItem;

    [self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]}];

    [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

    //self.navigationController.navigationBar.backgroundColor= KAllLines;

    self.navigationController.navigationBar.barTintColor = KAllLines;

    //KAllLines

    self.view.userInteractionEnabled = YES;

    self.view.backgroundColor = [UIColor whiteColor];


    self.memID = self.mydateModel.menberId;

//    self.dataSource = [[NSMutableArray alloc] init];

}

///拨打电话

- (void)cellPhone:(NSString *)phone phoneTite:(NSString *)tite{

    NSMutableString *str = [[NSMutableString alloc] initWithFormat:@"tel:%@",phone];

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];

    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {


    }];

    UIAlertAction *otherAction = [UIAlertAction actionWithTitle:tite style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

    }];

    [alertController addAction:cancelAction];

    [alertController addAction:otherAction];

    [self presentViewController:alertController animated:YES completion:nil];

}

//上图下字

-(void)initButton:(UIButton*)btn{

    btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//使图片和文字水平居中显示

    [btn setTitleEdgeInsets:UIEdgeInsetsMake(btn.imageView.frame.size.height ,-btn.imageView.frame.size.width, 0.0,0.0)];//文字距离上边框的距离增加imageView的高度,距离左边框减少imageView的宽度,距离下边框和右边框距离不变

    [btn setImageEdgeInsets:UIEdgeInsetsMake(0.0, 0.0,0.0, -btn.titleLabel.bounds.size.width)];//图片距离右边框距离减少图片的宽度,其它不边

}

//隐藏键盘

- (void)hideKeyBoard

{

    for (UIWindow* window in [UIApplication sharedApplication].windows)

    {

        for (UIView* view in window.subviews)

        {

            [self dismissAllKeyBoardInView:view];

        }

    }

}

-(BOOL) dismissAllKeyBoardInView:(UIView *)view

{

    if([view isFirstResponder])

    {

        [view resignFirstResponder];

        return YES;

    }

    for(UIView *subView in view.subviews)

    {

        if([self dismissAllKeyBoardInView:subView])

        {

            return YES;

        }

    }

    return NO;

}

#pragma mark  --  显示  --

- (void)ShowSVProgressHUD:(NSString *)text{


    if (text.length>0) {

        [SVProgressHUD showWithStatus:text ];


    }else{

        [SVProgressHUD showWithStatus:@"正在加载数据..."];

    }


}

- (void)DismissSVProgressHUD{

    [SVProgressHUD dismiss];

}

- (void)alterViewShow:(NSString*)text{

    [NineStarToolsObject alterViewShow:text viewcontroller:self stayTime:0.5];

}

#pragma mark  --  找到指定Storyboard  --

-(UIStoryboard*)getSelectStoryboard:(NSString*)name{


    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:name bundle:nil];

    return storyboard;

}

//设置状态栏颜色

- (void)setStatusBarBackgroundColor:(UIColor *)color {


    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {

        statusBar.backgroundColor = color;

    }

}

#pragma mark  --  取消tableView多余的线  --

-(void)setExtraCellLineHidden: (UITableView *)tableView

{

    UIView *view = [UIView new];

    view.backgroundColor = [UIColor clearColor];

    [tableView setTableFooterView:view];

}

//清除指定cell的分割线线

-(void)cleanCellLine:(UITableViewCell*)cell andTableView:(UITableView*)tableView{

    cell.backgroundColor = tableView.backgroundColor;

    cell.layer.borderColor = tableView.backgroundColor.CGColor;

    cell.layer.borderWidth = 1.0;

}

#pragma mark  --  跳转  --

- (void)setContentViewController:(UIViewController *)viewController  animated:(BOOL)animated{

    self.hidesBottomBarWhenPushed=YES;

    [self.navigationController pushViewController:viewController animated:animated];

    self.hidesBottomBarWhenPushed=NO;

}

- (void)addPopupView:(NSString *)PopString andView:(UIViewController*)viewController{

    PopupView* popView = [[PopupView alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-100, 0, 0)];

    popView.ParentView = viewController.view;

    [popView setText: PopString];

    [self.view addSubview:popView];


}

#pragma mark  --  请求  --

- (void)AFHTTPGetWithURLString:(NSString *)urlString Dictionary:(NSDictionary *)dictionary Succeed:(void(^)(id responseObject))Succeed Failured:(void(^)(NSError *error))Failured {

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    // 设置超时时间

    [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];

    manager.requestSerializer.timeoutInterval = 8.f;

    [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"application/json",@"text/plain",@"text/json",nil];


    [manager GET:urlString parameters:dictionary progress:^(NSProgress * _Nonnull downloadProgress) {


    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        Succeed(responseObject);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        Failured(error);

        NSLog(@"%@", [error localizedDescription]);

        [self DismissSVProgressHUD];

        if (error.code == -1001) {

            [self addPopupView:@"请求超时" andView:self];

        }else{

            [self addPopupView:@"请求失败" andView:self];

        }

    }];


}

- (void)AFHTTPPOSTWithURLString:(NSString *)urlString Dictionary:(NSDictionary *)dictionary Succeed:(void(^)(id responseObject))Succeed Failured:(void(^)(NSError *error))Failured{


    AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];


    // 设置超时时间

    [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];

    manager.requestSerializer.timeoutInterval = 8.f;

    [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"application/json",@"text/plain",@"text/json",nil];


    [manager POST:urlString parameters:dictionary progress:^(NSProgress * _Nonnull uploadProgress) {


    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        Succeed(responseObject);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        Failured(error);

        NSLog(@"%@", [error localizedDescription]);

        [self DismissSVProgressHUD];

//        if (error.code == -1001) {

//            [self addPopupView:@"请求超时" andView:self];

//        }else{

//            [self addPopupView:@"请求失败" andView:self];

//        }


    }];


}

//判断是否登录

- (BOOL)isloginIn{

    if (self.mydateModel.tele.length>0) {

        return YES;

    }

    return NO;

}

//

//-(void)viewWillDisappear:(BOOL)animated {

//    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];

//    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];

//}

#pragma  mark --懒加载

- (NSMutableArray*)dataSource{

    if (!_dataSource) {

        _dataSource = [[NSMutableArray alloc] init];

    }

    return _dataSource;

}

- (NSMutableArray*)secondarry{

    if (!_secondarry) {

        _secondarry = [[NSMutableArray alloc] init];

    }

    return _secondarry;

}

- (MydataModel*)mydateModel{

    _mydateModel = [[MydataModel alloc] initWithDictionary:[[NSUserDefaults standardUserDefaults] objectForKey:@"userData"]];

    return _mydateModel;

}

- (NSMutableArray *)imagePathArray{

    if (!_imagePathArray) {

        _imagePathArray = [[NSMutableArray alloc] init];

    }

    return _imagePathArray;

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

/*

#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

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

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/

@end

@implementation UIView (Finder)

- (UIView*) findFirstResponderView {

    if ([self isFirstResponder]) {

        return self;

    }


    for (UIView* subView in self.subviews) {

        UIView* view = [subView findFirstResponderView];

        if (view != nil) {

            return view;

        }

    }

    return nil;

}

@end

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,635评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,543评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,083评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,640评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,640评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,262评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,833评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,736评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,280评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,369评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,503评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,870评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,340评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,460评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,909评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,512评论 2 359

推荐阅读更多精彩内容