-(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. Windows 7 添加MBR文件启动

    bcdedit /create /d "Solaris" /application bootsector后会出现标识符如{26224d85-dbcc-11e4-86a8-e164d ...

  2. unity自定义菜单面板开发

    using UnityEditor;using UnityEngine;using CreateTerrainDLL; public class CreateTerrainMenu : EditorW ...

  3. GitHub 上排名前 100 的 Objective-C 项目简介

    主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况.   项目名称 项目信息 1. AFNetworking ...

  4. 查询oracle数据库,返回的数据是乱码。 PL/SQL正常。

    查询oracle数据库,返回的数据是乱码. PL/SQL正常. 解决方案如下:

  5. mac系统下Ruby环境安装

    在我们编写代码过程中,会用到一系列的第三方开源类库,我们可以选择手动去一个个添加需要的库,但这非常麻烦.因此我们可以使用CocoaPods来帮助我们自动添加.使用CocoaPods需要先安装Ruby环 ...

  6. Linux学习笔记2_mysql安装

    查看文件内容的命令有很多:cat, tac, more, less, head, tail, nl. cat由第一行开始显示档案内容:tac从最后一行开始显示,可以看出tac是cat的倒着写:more ...

  7. java学习第16天(补充可变参数)

    如果我们在写方法的时候,参数个数不明确,就应该定义可变参数. 格式: 修饰符 返回值类型 方法名(数据类型... 变量) {} 注意: A:该变量其实是一个数组名 B:如果一个方法有多个参数,并且有可 ...

  8. jQuery学习笔记(在js中增加、删除及定位控件的操作)

    代码内容很多都是从amazeui直接copy过来的,先声明,请不要说在下抄袭- - <!-------------------- HTML代码 ----------------------> ...

  9. 初学Python之异步多线程:sockserver

    异步多线程:服务端 import socketserver class MyServer(socketserver.BaseRequestHandler): def setup(self): pass ...

  10. adb常用命令

    adb命令的主要用途  1. 运行android设备的shell(命令行).  2.管理模拟器或android设备的映射端口.  3. 安装和卸载应用程序.  4.计算机和android设备之间的上传 ...