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

}

当前界面最上面添加视图(UIWimdow)的更多相关文章

  1. iOS 11开发教程(十三)iOS11应用编辑界面添加视图

    iOS 11开发教程(十三)iOS11应用编辑界面添加视图 在iOS中添加视图的方式有两种:一种是使用编辑界面添加视图:另一种是使用代码添加视图.以下是这两个方式的详细介绍. 1.编辑界面添加视图 使 ...

  2. 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

    Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Changing vi ...

  3. vs2013中,自定义mvc 添加视图脚手架

    参考文章: http://weblogs.asp.net/imranbaloch/archive/2013/09/15/customizing-the-asp-net-mvc-5-web-api-2- ...

  4. ASP.NET MVC系列:添加视图

    虽然在上一篇文章中我们知道通过控制器可以在浏览器输出HTML页面,但是这不是控制器主要干的事,因为页面上我为还要做很多好看的特效,页面展示的事情当然交给视图来做了:下面我们就来看看如何添加一个视图 添 ...

  5. [Asp.net MVC]Asp.net MVC5系列——添加视图

    目录 系列文章 概述 添加视图 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 概述 在这一部分我们添加一个新的控制器HelloWorldController类, ...

  6. Django之admin界面恢复及添加数据模型

    引自:http://fl0wjacky.github.io/jekyll_demo/2014/07/14/Django-admin.html Django之admin界面恢复及添加数据模型 Djang ...

  7. ASP.NET MVC 5 学习教程:添加视图

    原文 ASP.NET MVC 5 学习教程:添加视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...

  8. C# MVC 自学笔记—4 添加视图

    ==============================翻译============================== 在本节中,你将要修改 HelloWorldController 类,以便使 ...

  9. 【译】ASP.NET MVC 5 教程 - 3:添加视图

    原文:[译]ASP.NET MVC 5 教程 - 3:添加视图 在本节内容中,我们将修改HelloWorldController类,使用视图模板来干净利索的封装生成HTML响应客户端的过程. 您将创建 ...

随机推荐

  1. 用直接路径(direct-path)insert提升性能的两种方法

    1.传统串行insert方式 常见的insert方式有两种: (1) insert into table_name values(....) (2) insert into target_table ...

  2. Oracle的exp/imp详解

    原文地址:Oracle的exp/imp详解 作者:jxlazzw 备份概述 逻辑备份:备份可分为两类 ,物理备份和逻辑备份 物理备份:该方法实现数据库的完整恢复,但需要极大的外部存储设备,例如磁带库, ...

  3. WebStorm 10.0.4注册码

    WebStorm 是JetBrains旗下的一款轻量级JavaScript 开发工具,软件的功能非常强大,具备复杂客户端和服务器端的开发能力,被广大中国JS开发者誉为“Web前端开发神器”.“最强大的 ...

  4. EasyUI DataGrid 分页实现示例

    使用easyui可以很方便的开发web程序,这儿仅展示一个后台使用mvc来实现分页的示例,截图如下 示例代码如下 1. 创建模型类,代码如下 using System; using System.Co ...

  5. cvs update后输出的文件标志 和 update常用的几个参数

    (1)update 和 checkout 在执行中,会为每个文件打印一行提示信息,文件的状态通过前面的单个字符指明:       U file        文件按要求从仓库得到更新.用在那些仓库里面 ...

  6. AX7: CREATE AN AUTOMATED TEST PACKAGE\MODEL

    AX7: CREATE AN AUTOMATED TEST PACKAGE\MODEL It’s really important for a stable solution the use of a ...

  7. python多进程提高cpu利用率

    cpu参数: 1个物理cpu,2个逻辑cpu(超线程),单核 具体 http://blog.csdn.net/dba_waterbin/article/details/8644626   物理CPU. ...

  8. The C Programming Language Exercise

    1-9 : Write a program to copy its input to its output, replacing each string of one or more blanks b ...

  9. [转载]python操作excel使用win32com

    原文链接:http://blog.163.com/yang_jianli/blog/static/16199000620138532243782/ 使用COM接口,直接操作EXCEL(只能在Win上) ...

  10. MaxScript重启3dsMax的重新思考

    前天看到一位大神写用MaxScript实现重启3dsMax的方法,用的是.net临时编译一个exe出来,然后用这个新的进程来关闭并开启新的max.感觉这种思路不错,或许可以用在别的地方.不过谈及max ...