当前位置: 首页 > 编程日记 > 正文

iOS的页面跳转

1.通过NavigationController跳转

这个方式适用于根视图为NavigationController的控制器,首先,在storyboard中给跳转的目标控制器视图设置Identifier,名字自定,我这里直接使用Controller对应的名字,如图1:
需要跳转时调用如下代码:
 //第一个GarageDetailViewController为需要跳转的控制器,第二个GarageDetailViewController为上面设置的IdentifierGarageDetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"GarageDetailViewController"];[self.navigationController pushViewController:vc animated:YES];


图1


如果第一个Controller包含TabBar,而希望在跳转之后的页面不显示TabBar,只要加入以下一行代码
[vc setHidesBottomBarWhenPushed:YES];



2.通过Storyboard Segue

这个方式同时适用于push和modal,按着control键从开始的页面拖线到目标页面,松手后选择使用push还是modal切换,如图2。
然后两个页面之间生成了一个segue,选中segue,设置它的Identifier,如图3、4 。在开始页面的Controller中在需要切换的地方调用:
[self performSegueWithIdentifier:@"toGarageList" sender:self];


图2



图3



图4


如果第一个Controller包含TabBar,而希望在跳转之后的页面不显示TabBar,只要重写以下方法
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{[segue.destinationViewController setHidesBottomBarWhenPushed:YES];
}


3.模态切换(默认从底部)

[self presentViewController:myVC animated:YES completion:^{//完成后的处理代码    
}];

*myVC可以在storyboard创建、xib创建、纯代码创建

(1)storyboard 如方法1

 GarageDetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"GarageDetailViewController"];

(2)xib

 SponsorPersonPageViewController *vc = [[SponsorPersonPageViewController alloc] initWithNibName:@"SponsorPersonPageViewController" bundle:nil];

(3)纯代码

OrderNewViewController *vc = [[OrderNewViewController alloc] init];
此时需要重写OrderNewViewController的loadView方法

- (void)loadView
{[super loadView];self.view.backgroundColor = [UIColor whiteColor];
}

参考: http://www.cnblogs.com/mjios/archive/2013/02/26/2933667.html



相关文章:

最新Java面试题答案

JAVA基础 JAVA中的几种基本类型,各占用多少字节? 下图单位是bit,非字节 1B8bit String能被继承吗?为什么? 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改…

fedora装机后要运行的脚本(原创)

脚本:sh.sh 1 #!/bin/zsh2 #安装rpmfusion源3 dnf config-manager --add-repohttp://repo.fdzh.org/FZUG/FZUG.repo4 #安装一下有用的一些软件包5 yum -y install yum-fastestmirror 6 yum -y install unrar7 yum -y install thunderbird8 yum -y install emacs9 yum -y instal…

【Android】FragmentTabHost实现底部Tab菜单选项

以前实现类似微博底部菜单使用的是TabHostActivity来实现&#xff0c;但是使用的时候提醒已经被弃用&#xff0c;现在我们可以通过FragmentTabHostFragment来实现。下面就是demo&#xff1a; 1.main_activity.xml 主布局文件。 <LinearLayout xmlns:android"http://sc…

mysql远程访问,修改root密码

mysql -uroot -p #input password use mysql; update user set host% where userroot; flush privileges; #ok 密码root密码也可以改&#xff1a; 先停止正在运行的mysql实例&#xff0c;在配置文件/etc/my.cnf里面加入 skip-grant-tables&#xff0c; 重新启动Mysql 或者使用…

java面试题2019 答案

Java 面试随着时间的改变而改变。在过去的日子里&#xff0c;当你知道 String 和 StringBuilder 的区别&#xff08;String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String…

android layout analyze

adapterapientityhandleruiuntilwidgetappContent.java *************************************图片&#xff1a;drawable&#xff1a;存放各种位图文件&#xff0c;(.png&#xff0c;.jpg&#xff0c;.9png&#xff0c;.gif等)除此之外可能是一些其他的drawable类型的XML文件m…

【转】iOS开发学习计划

转自&#xff1a;简书 一、C语言基础 基本数据类型、基本运算、函数、数组、字符串、指针、结构体、预处理指令、枚举、文件操作、内存管理 二、Objective-C 1、Objective-C基本语法 数据类型、表达式、变量、循环结构、选择结构 2、Objective-C面向对象 类、对象、继承、自省…

[置顶] 单例模式lua实现

--[[优点一、实例控制单例模式会阻止其他对象实例化其自己的单例对象的副本&#xff0c;从而确保所有对象都访问唯一实例。二、灵活性因为类控制了实例化过程&#xff0c;所以类可以灵活更改实例化过程。缺点一、开销虽然数量很少&#xff0c;但如果每次对象请求引用时都要检查…

我在CSDN的第一个1024

1024程序员节日历史 2002年&#xff0c;俄罗斯程序员Valentin Balt收集签名&#xff0c;向俄罗斯联邦政府请愿将9月13日设定为程序员节。 2009年9月11日&#xff0c;俄罗斯总统梅德韦杰夫在节日安排方案上签了名&#xff0c;“程序员节”从此成为了俄罗斯的一个正式节日。除了俄…

【转】判断UIViewController是否正在显示

最近做一个项目&#xff0c;要判断某个ViewController是否正在与用户交互、显示&#xff0c;百度了一下&#xff0c;这篇文章解决了我的问题&#xff0c;故转之&#xff1a;http://edsioon.me/if-uiviewcontroller-is-display/ 某些情况下&#xff0c;需判断当前ViewController…

c#中如何跨线程调用windows窗体控件?

我们在做winform应用的时候&#xff0c;大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题&#xff0c;下面我将详细的介绍。首先来看传统方法&#xff1a; public partial class Form1 : Form{public Form1(){InitializeCompone…

poj 1964 Cow Cycling(dp)

/* 一开始想的二维的 只维护第几只牛还有圈数 后来发现每只牛的能量是跟随每个状态的 所以再加一维 f[i][j][k]表示第i只牛 领跑的j全 已经消耗了k体力 转移的话分两类 1.换一只牛领跑 那么就从f[i][j][k]转移到f[i1][j][j] 2.不换 那就枚举i领跑几圈l f[i][j-l][k-l*l]转移到…

高级网络配置《 bond team桥接 》的建立

bond 资料详情 一、链路聚合&#xff1a;以太网链路聚合简称链路聚合&#xff0c;它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路&#xff0c;从而实现增加链路带宽的目的。同时&#xff0c;这些捆绑在一起的链路通过相互间的动态备份&#xff0c;可以有效地提高链路…

iOS通过CAShapeLayer和UIBezierPath画环形进度条

UIBezierPath可以绘制矢量路径&#xff0c;而CAShapeLayer是Layer的子类&#xff0c;可以在屏幕进行绘制&#xff0c;本文主要思想是&#xff1a;CAShapeLayer按照UIBezierPath的矢量路径进行绘制。 效果图如图&#xff1a; 方法如下&#xff1a; interface ViewController ()…

这些云计算技术你了解过哪几种

新霸哥发现目前信息量高速增长的今天&#xff0c;IT行业正在面临着空间和成本等资源的巨大压力&#xff0c;但是随着这些需求的日益增长&#xff0c;在行业中出现了一类全新的解决方案&#xff0c;通过云计算技术对数据中心进行改造。要获得云计算的优势&#xff0c;必须在it基…

Tomcat官方文档关于数据源配置的内容

虽然有网上有网友自己总结的文章&#xff0c;但说明得总是不够清晰&#xff0c;还是参考官方文档理解得比较透彻&#xff1a; http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html 转载于:h…

利用kickstart自动安装虚拟机

虚拟机的手动安装 下载dhcp服务 systemctl stop firewalld getenforce setenforce 0 关闭防火墙 图中最后面添加一个 } yum install systemctl-4.05-8.el7.x86_64 rpm -ql syslinux rpm -ql tftp-server 在挂载…

第17章 使用iSCSI服务部署网络存储

章节概述&#xff1a; 本章节将分析SCSI与iSCSI技术结构的不同&#xff0c;了解iSCSI技术的优势、SAN存储网络技术结构以及iSCSI HBA卡的作用。 完整演示部署iSCSI target服务程序的方法流程&#xff1a;创建RAID阵列(5)后使用targetcli命令发布到iSCSI存储目录并创建ACL列表。…

【仿去哪儿】骆驼动画加载

简单的实现正在加载的动画&#xff0c;比较粗糙&#xff0c;没有实现后面的旋转地球。图一为去哪儿的截图&#xff0c;图二为本文实现的效果 图1 图2 一、新建LoadView继承自UIView&#xff0c;声明几个方法&#xff0c;这样在项目需要用到时&#xff0c;直接调用就行&#xff…

来自极客标签10款最新设计素材-系列十六

本周我们推荐来自极客标签社区带来的10款免费设计素材&#xff0c;大家可以在这里免费下载你需要的内容。如果你也有更好的作品&#xff0c;欢迎分享到社区中来&#xff0c;在得到帮助的同时&#xff0c;也能与更多人分享来自你的作品。 免费图标&#xff1a;扁平风格的图标集…

python简介、安装及基本设置

python简介 1、Python的定义&#xff1a; Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性&#xff0c;相比其他语言经常使用英文关键字&#xff0c;其他语言的一些标点符号&#xff0c;它具有比其他语言更有特色…

MVC会员注册

自从写了《数据库数据加密与解密》http://www.cnblogs.com/insus/p/3434735.html。其中也有提及Insus.NET将要在MVC应用程序中实现会员注册的功能。一段时间来&#xff0c;工作繁忙&#xff0c;这个星六还要值班。现在算是忙里偷闲&#xff0c;继续写MVC的程序。本次要实现会员…

继承,基类,派生类

在 C中&#xff0c;继承机制通过类的派生实现&#xff0c;被继承的类称为基类或父类&#xff1b;在继承类的基础上创建的新类称为派生类或子类。派生类的定义格式为&#xff1a;class 派生类名:继承方式基类名 1,继承方式基类名 2,…,继承方式基类名 n{派生类增加的成员声明;};…

【仿去哪儿】滑动隐藏导航栏

仿照去哪儿&#xff0c;隐藏导航栏&#xff08;其实是设置为透明背景&#xff09;&#xff1a;向下滑动到时&#xff0c;当顶部图片看不见时&#xff0c;显示导航栏&#xff0c;源代码下载&#xff0c;效果如下&#xff1a; 主要思想&#xff1a;就是监听UITableView的滑动事件…

Python基本知识以及if语句

注释 什么时候需要注释? 对于复杂的操作&#xff0c;应该在操作开始前写若干行注释&#xff0c;目的是增加可读性&#xff0c;注释应该和代码至少离开两个空格 单行注释&#xff08;两种方式&#xff09; 多行注释&#xff08;一种方式&#xff09; ####if语句&…

通过pip安装模块

环境&#xff1a;ubuntu&#xff0c;python2/3 命令&#xff1a; pip3 install ipy  # 通过pip3给python3.x安装ipypip3 install --upgrade pip  # 升级pippip install ipy  # 通过pip给python2.x安装ipy 如果显示程序“pip/pip3”尚未安装 sudo apt-get install python3…

按照文字内容动态设置TableViewCell的高度

最近再做个项目需要使用UITableView来显示评论列表&#xff0c;但是有的评论字数特别多&#xff0c;固定的Cell高度显示不完&#xff0c;只能动态地根据字数来设置Cell的高度了 只要实现UITableViewDelegate的 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIn…

分享十款免费数据恢复软件

绝大多数的数据恢复软件都可以帮助你恢复被删除的文件。免费数据恢复软件可帮助你“取消删除”或者恢复电脑中的文件。那些你已经删除而且最近从回收站清空的文件仍然存在硬盘上&#xff08;或介质卡或USB驱动器等&#xff09;&#xff0c;也可以通过这些免费数据恢复软件轻松地…

Python 字符串及基本语句

#####1、break break: 某一条件满足的时候&#xff0c;退出循环&#xff0c;不再执行后续重复的代码 在循环体内部&#xff0c;我们可以增加额外的条件&#xff0c;在需要的时候&#xff0c;跳出整个循环 i 0 while i <10: if i 3: break print i i 1 print ‘over’ #…

javascript 方法实例

输出对象的属性名称与值 &#xff1a; boj(o){for(var p in o){console.log(p ":" o[p] "\n"); } } 构造函数&#xff1a; var o new Object(); 构造函数通过不使用return关键字&#xff0c;它通过初始化新对象 if(a)else{b} //如果不是a就返…