文档章节

ios页面间跳转方式总结

黑白大熊猫
 黑白大熊猫
发布于 2015/02/07 19:18
字数 484
阅读 55
收藏 0
点赞 0
评论 0


下面以OldViewController(oldC)的按钮btn点击后跳转到NewViewController(newC)为例说明:

1.Storyboard的segues方式

 鼠标点击按钮btn然后按住control键拖拽到newC页面,在弹出的segue页面中选择跳转模式即可

优点:操作方便,无代码生成,在storyboard中展示逻辑清晰

缺点:页面较多时不方便查看,团队合作时可维护性差,多人合作时不建议使用这种方式

 

2.选项卡UITabBarController控制器

通过调用UITabBarController的addChildViewController方法添加子控制器

实例代码:

UITabBarController *tabbarVC = [[UITabBarControllerallocinit]; 

    OldViewController *oldC = [[OldViewControllerinit];

    oldC.tabBarItem.title = @"控制器1";

    oldC.tabBarItem.image = [UIImageimageNamed:@"old.png"];

    NewViewController *newC = [[NewViewControllerinit];

    newC.tabBarItem.title = @"控制器2";

    newC.tabBarItem.image = [UIImageimageNamed:@"new.png"];

    // 添加子控制器(这些子控制器会自动添加到UITabBarController的viewControllers数组中)

    [tabbarVC addChildViewController:recent];

    [tabbarVC addChildViewController:friends];

优点:代码量较少

缺点:tabbar的ios原生样式不太好看,(不常用,目前不建议使用),如果要使用,建议自定义tabbar

 

3.导航控制器UINavigationController

在oldC的btn的监听方法中调用:

[self.navigationController pushViewController:newC animated:YES];  //跳转到下一页面

在newC的方法中调用:

[self.navigationController popViewControllerAnimated:YES];  //返回上一页面

当有多次跳转发生并希望返回根控制器时,调用:

[self.navigationController popToRootViewControllerAnimated:YES];  //返回根控制器,即最开始的页面

 

4.利用Modal形式展示控制器

在oldC中调用:

[self presentViewController:newC animated:YES completion:nil];

在newC中调用:

[self dismissViewControllerAnimated:YES completion:nil];

 

5.直接更改 UIWindowrootViewController

 

总结:

Storyboard方式适合个人开发小程序时使用,有团队合作或者项目较大时不建议使用

UITabBarController因为目前系统的原生样式不太美观,不建议使用

推荐使用UINavigationController和Modal,无明显缺点,而且目前大部分程序都使用这两种方式,只是看是否需要导航控制器而确定使用哪种方案

 


本文转载自:http://www.cnblogs.com/anywherego/p/3542202.html

共有 人打赏支持
黑白大熊猫
粉丝 3
博文 18
码字总数 2023
作品 0
太原
程序员
RN与原生交互(一)——基本页面跳转

React Native(以下简称RN)开发app过程中大部分都可以在JS端完成,但是也有一些功能是需要原生端来完成的。这时RN与原生端就不可避免的需要进行交互,比如页面跳转和数据传递。本篇文章主要以...

不變旋律 ⋅ 06/13 ⋅ 0

iOS一些代码的取巧写法总结(一)

一、 字典(NSDictionary)和JSON字符串(NSString)之间互转 二、打开摄像机作为背景 三、打开背光灯 四、状态栏和导航栏一些设置 五、切回app时、会有闪现、闪现一次主屏幕的现象 六、[UIAppl...

朝雨晚风 ⋅ 2016/12/05 ⋅ 0

微信小程序唤起其他微信小程序 / 移动应用App唤起小程序

1. 微信小程序唤起微信小程序 小程序唤起其他小程序很简单 先上链接 小程序跳转小程序 Navigator组件 推荐使用 小程序跳转小程序 wx.navigateToMiniProgram(OBJECT) API 即将废弃 不推荐使用...

一个程序猿的每一天 ⋅ 05/30 ⋅ 0

小程序iOS客户端框架——控件事件逻辑框架与控件原生化

小程序自发布以来,为开发者和用户提供了一种轻量级的App。作为一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。小程序也体现了“用...

codeGoogle ⋅ 04/24 ⋅ 0

小程序iOS客户端框架—控件事件逻辑框架与控件原生化

小程序自发布以来,为开发者和用户提供了一种轻量级的App。作为一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。小程序也体现了“用...

codeGoogle ⋅ 04/26 ⋅ 0

我们可以利用 NSURLProtocol 做什么

本文是我首发在iOS知识小集团队的,欢迎关注微博话题#ios知识小集#。 今天和大家聊一聊 NSURLProtocol,可能你已经听说过它。因篇幅有限,这里不讲解具体的使用方式,主要是和大家聊一聊我们...

halohily ⋅ 04/22 ⋅ 0

Unity与IOS交互,调用IOS系统相机和相册

前面两篇总结了一下unity与android的简单交互和调用安卓系统相机和相册,比较蛋疼的是,后来发现不同的测试机上会有不同的bug。。。下阶段要一个一个的解决一下 今天总结一下与IOS的交互。这...

qq_32587659 ⋅ 05/16 ⋅ 0

iOS三维菜单、调试工具、封装通讯录、网络框架、多种控件和动画等源码

iOS精选源码 一个调用系统通讯录和获取通讯录所有联系人的封装(http://www.code4app.com/thread-29726-1-1.html) ios scrollview嵌套tableview同向滑动(初级、进阶), 支持OC / Swift(http...

sunnyaigd ⋅ 05/15 ⋅ 0

常见的移动端H5页面开发遇到的坑和解决办法

手机共通问题 问题一:用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经研究发现是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页字会非常小,所以苹果...

webmirror ⋅ 05/02 ⋅ 0

iOS原生混合RN开发最佳实践

做过原生iOS开发或者Android开发的同学们肯定也都了解Hybrid,有一些Hybrid的开发经验,目前我们企业开发中运用最广泛的Hybrid App技术就是原生与H5 hybrid,在早期的时候,可能部分同学也接...

光强 ⋅ 05/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部