当前界面最上面添加视图(UIWimdow)

-(void)windowAddPushVc:(UIView *)pushView WithTitle:(NSString *)title {

 

 

    UIWindow *window = [UIApplication sharedApplication].keyWindow;

 

    UINavigationBar *navigationBar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 64)];

 

    UILabel *label = [UILabel rf_labelWithFontName:kFontPingFangMedium FontSize:36 TextAligent:NSTextAlignmentCenter TextColor:[UIColor whiteColor] CanChangeLine:NO];

 

    label.text = title;

 

    [navigationBar addSubview:label];

 

    [label mas_makeConstraints:^(MASConstraintMaker *make) {

 

        make.centerX.mas_equalTo(navigationBar);

 

        make.centerY.mas_equalTo(navigationBar).offset(10);

 

    }];

 

    navigationBar.backgroundColor = kGlobelMainColor;

    //添加导航栏的阴影效果

    navigationBar.layer.shadowOpacity = 0.26;

 

    navigationBar.layer.shadowOffset = CGSizeMake(0, 3);

 

    navigationBar.layer.shadowColor = HexColor(0x000000).CGColor;

 

    //添加返回按钮

    [self addBackBtn:navigationBar];

 

    pushView.tag = 1099;

 

    navigationBar.tag = 1098;

 

    pushView.frame = CGRectMake(0, 64, kScreenWidth, kScreenHeight);

 

    navigationBar.frame = CGRectMake(0, 0, kScreenWidth, 64);

 

    [window addSubview:pushView];

 

    [window addSubview:navigationBar];

 

 

 

}

 

- (void)addBackBtn:(UINavigationBar *)navigationBar

{

    //设置导航栏的返回按钮

    RFNavButton *backBtn = [[RFNavButton alloc]initWithFrame:CGRectMake(10, 32, kFitW(100), 20)];

 

    [backBtn setImage:[UIImage imageNamed:@"nav_backarrow_icon"] forState:UIControlStateNormal];

 

    backBtn.titleLabel.font = [UIFont fontWithName:kFontPingFangRegular size:kFitFontSize(28)];

 

    [backBtn setTitle:@"返回" forState:UIControlStateNormal];

 

    [backBtn addTarget:self action:@selector(backBtnClick:) forControlEvents:UIControlEventTouchUpInside];

 

    [navigationBar addSubview:backBtn];

 

}

 

//导航栏返回按钮的响应事件

- (void)backBtnClick:(UIButton *)btn

{

 

    //只要是从消息在详情界面返回时,通知总的消息列表进行数据的刷新

    [[NSNotificationCenter defaultCenter]postNotificationName:kPushListReload object:nil];

 

    UIWindow *window = [UIApplication sharedApplication].keyWindow;

 

    UIView *pushView  =  [window viewWithTag:1099];

 

    UIView *navgationBar  = [window viewWithTag:1098];

 

    [UIView animateWithDuration:0.5 animations:^{

       pushView.alpha = 0;

       navgationBar.alpha = 0;

    }

                     completion:^(BOOL finished) {

                        [pushView removeFromSuperview];

                        [navgationBar removeFromSuperview];

                     }];

 

}

 

 

获取带有tabbar的控制器的最外层控制器

 

 

//获取当前的控制器

-(UIViewController *)gerCurrentVc{

    

    UIViewController *rootVc = [UIApplication sharedApplication].keyWindow.rootViewController;

    

  

    UIViewController *view = rootVc.childViewControllers[0];

    

    RFTabBarController *tabbarView = (RFTabBarController *)view.presentedViewController;

    

    UIViewController *rootNav = tabbarView.childViewControllers[tabbarView.selectedIndex];

    

    UIViewController *currentVc = rootNav.childViewControllers[rootNav.childViewControllers.count-1];

    

    return currentVc;

 

}

posted on 2017-01-03 08:21  敏言慎行  阅读(201)  评论(0编辑  收藏  举报

导航