一、跳转语句的适用场合

基本上常用的有两种场合,一种是ViewController,另一种是navigationController。

适用于ViewController:

[self presentViewController:@1 animated:YES completion:nil];//前进跳转

@1部分为ViewController类声明的对象

[self dismissViewControllerAnimated:YES completion:nil];//后退跳转

后退跳转可以理解为销毁当前页面,现实前一页面

适用于navigationController:

[self.navigationController pushViewController:@1 animated:YES];

@1部分为ViewController类声明的对象

    [self.navigationController popToRootViewControllerAnimated:YES];[self.navigationController popToViewController:@1 animated:YES];[self.navigationController popViewControllerAnimated:YES];

第一个是销毁当前页面回到根视图,因为navigationController是栈,可视作链式结构,

第二个是销毁当前页面前往指定视图,

第三个是销毁当前页面前往前一页面。

二、跳转的实现

通常的三种编码形式主要是:纯代码、xib界面、故事板型

涉及到跳转页面这个方面,每个形式之间都有不同。

1、故事板型(storyboard)

这个形式下有三种情况

一种是直接拖线建立连接关系,并且是在navigationController下。当前界面的按钮拖动连接线至目标界面,选择show选项即可

另一种稍复杂,因为有些情况下,无法通过拖线建立联系,比如点击Cell进入另一个见面,并且这个Cell是动态生成的,如微博那种形式。以下是相关代码

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{//正向传值Info *info=self.InfoArray[indexPath.row];ModifyEditViewController*mo=[self.storyboard  instantiateViewControllerWithIdentifier:@"Modify"];//。。。。@1mo.sendtheinfo=info;mo.temp=indexPath;//传过去预修改的位置路径//回传修改的值mo.delegatex=self;[self.navigationController pushViewController:mo animated:YES];//。。。。@2
}

故事板型页面跳转,需要形成一个故事板型的对象来进行跳转 ,即在@1的语句中,需要在当前的功能函数中,声明一个目标故事板的对象,再用等号后面的语句来定义声明目标故事板,并且之前要做的准备工作就是:在目标故事板中定义它的标识:Identifier:Modify.这个是@1语句中需要注意的。

以上的准备工作做好了以后,在根据需要进行相关形式的跳转,因为这里用到了导航,所以用pushViewController,跳转到目标故事板。

最后一种,在ViewController形式中,进行跳转。有一种情况,和第一种的一样当前界面的按钮拖动连接线至目标界面,选择show选项即可,这种情况是无条件跳转的。点击即可跳转。还有一种是有条件跳转的,比如登陆界面,需要有判断,再选择是否跳转,并且同样适用于navigationController中的登录。以下是代码:

 if ([self.fill.text isEqualToString:@"abc"]&&[self.Acc.text isEqualToString:@"abc"]) {UIStoryboard *us=self.storyboard;//。。。。@1SndViewController *snd=(SndViewController *)[us instantiateViewControllerWithIdentifier:@"Welcome"];//。。。。@2snd.temp=self.Acc.text;[self presentViewController:snd animated:YES completion:nil];//。。。。@3
//        [self performSegueWithIdentifier:@"Welcome" sender:self];    //不需传值的时候。。。。@4}

在这种情况中,同样需要声明故事板,并且给故事板添加标识,即@1、@2两句。代码中虽然@4注释了一句,但是后来一想觉得两种方式都可以。

总结来说就是,故事板之间没有可视连线,都需要以故事板形式进行跳转:目标故事板的类进行声明对象,再用故事板、标识,来定义该对象,最后用跳转语句装载该对象进行跳转。

2、xib型,

xib型的跳转比较单纯,没有故事板那么复杂。代码如下:

 TwoViewController *twoVC=[[TwoViewController alloc] initWithNibName:@"TwoViewController" bundle:nil];//。。。。@1if ([self.Acc.text isEqualToString:@"admin"]&&[self.Pwd.text isEqualToString:@"admin"]){twoVC.temp=self.Acc.text;[self presentViewController:twoVC animated:YES completion:nil];}

首先,声明类对象是肯定要做的,不过要注意在xib型里,@1语句中等号后面是传统的初始化形式,关键语句为initWithNibName,后面接类名。

然后用相关的跳转语句装载声明的对象来进行跳转。

3、纯代码型

纯代码型的比xib的还要容易一些,不过还是分两步走,一声明、二跳转,代码如下:

TwoViewController *twoVC=[[TwoViewController alloc] init];
[self presentViewController:twoVC animated:YES completion:nil];

使用时镶嵌到相关的逻辑语句内即可。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/gentelSky/p/4776485.html

各种跳转语句以及其适用场合+页面跳转在三种编码形式中的实现相关推荐

  1. javascript传值和页面跳转传值(ASP.NET页面传参的三种方法)

    我在csdn上提的问题是        我现在希望从asp.net网页弹出对话框,弹出一些错误信息.警告.提示信息之类的东西,目前准备用javascript实现,所以我希望在调这个对话框的时候,动态传 ...

  2. 微信小程序点击带id参数跳转_微信小程序页面跳转方法和携带参数详解

    1.页面跳转方式 (1)标签跳转 open-type的属性值对应api里的用法即wx.的用法 1 跳转到新页面 (2)wx.navigateTo 方法跳转 此方法能够从跳转的页面会回到当前页面 1 w ...

  3. 详解微信小程序页面间传递信息的三种方式

    详解微信小程序页面间传递信息的三种方式 在开发微信小程序的时候,经常会遇到在页面间传递信息的情况,有三种方法可以实现. 1. 使用数据缓存 将要存储的数据使用以下方法放入缓存 wx.setStorag ...

  4. php伪造页面url地址,php 伪造HTTP_REFERER页面URL来源的三种方法

    php获取当前页面的前一个页面URL地址,即当前页面是从哪个页面链接过来的,可以使用$_SERVER['HTTP_REFERER'],但是这个来源页面的URL地址是可以被伪造和欺骗的,本文章向大家介绍 ...

  5. mysql 页面跳转_Springboot+MyBatis+mysql+jsp页面跳转详细示例

    SpringBoot与MyBatis搭建环境,底层数据库为mysql,页面使用JSP(官网上不推荐使用jsp),完成从数据库中查询出数据,在jsp页面中显示,并且实现页面的跳转功能. 项目下载链接: ...

  6. 网页跳转出现内部服务器错误,页面跳转后提示HTTP异常500(InternalServerError):服务器尝试执行请求时遇到了意外情况...

    页面跳转后提示HTTP 错误 500(Internal Server Error):服务器尝试执行请求时遇到了意外情况. index.php跳转到chkadmin.php提示(服务器错误 网站在检索 ...

  7. 【小程序“600002“】现象:小程序测试版能正常的进行页面跳转,正式版不能进行页面跳转

    记录:(in promise) MiniProgramError {"errno":600002,"errMsg":"request:fail url ...

  8. 页面跳转传参,A 页面跳转到B页面,把A页面获取的值传到B页面

    1.问题: 最近遇到一个问题,在A页面跳转到B页面时,同时将一个值带到B页面并显示出来. 最后找到一个比较靠谱的方法,分享给大家~ 2.解决: 页面其他内容不再展示,只写A,B两个页面的JS代码段,有 ...

  9. app能不能跳转外部h5_APP内部H5页面跳转 H5唤起APP 怎么做?

    H5唤起APP某页面 做的H5页面,在APP中放了入口,在APP中访问别的页面 场景 我们做的H5页面,希望从浏览器跳转至APP的某个特定页面,如在H5中设置购买按钮,希望点击跳转至APP内部的购买页 ...

最新文章

  1. 【c语言】输入输出格式练习
  2. Redux入门之实现一个迷你版的Redux
  3. jvm性能调优实战 - 47超大数据量处理系统是如何OOM的
  4. 2009中国海上大阅兵全视频
  5. 使用javascript及java对Cookie的读写
  6. 【转载】一天之内上手.Net+WAP项目
  7. Out-of-Process iframes (OOPIFs)
  8. 计算机的mac被交换机绑定,华为交换机绑定IP与MAC地址 -电脑资料
  9. 智慧林草信息化解决方案(森林防火应急指挥系统)
  10. 英文论文写作小贴士(2)
  11. Linux实验操作之使用LAMP系统架设一个Discuz论坛
  12. 基于Qt的局域网即时通讯软件
  13. sdnu 1078
  14. MacOS配置go环境
  15. mac系统怎么制作装系统的u盘?苹果电脑u盘启动盘制作教程
  16. Absolutt ingenting er mye mer skjerpende parajumpers ? v?re en ulydig prest
  17. 如何设置STM32的系统时钟(SYSCLK)
  18. Everyday-FE-Articles 8~11月前端文章日推 [持续更新]
  19. 外包程序员的水平真的很垃圾吗?
  20. Golang Append()详解

热门文章

  1. 【计算机网络】题目汇总
  2. html 中加入幻灯片,怎么HTML中加入PPT播放
  3. VBoxManage安装
  4. BOOTSTRAP 编码规范 by @mdo
  5. Oracle11g创建表空间和用户,并授权
  6. visual studio 必装插件,码c++等必备
  7. Java SpringBoot 集成微信公众号
  8. C#中的结构体与类的区别
  9. Underlay和Overlay网络是什么
  10. 微信小程序实现附近吃喝玩乐功能-基于百度地图服务搜索附近POI