ViewController跳转的三种方式的混合使用
2016-03-05 15:55
274 查看
//添加一个BaseNavigation,可以从不同界面跳转到同一个界面,同一个界面的回退方式:
self.dismissViewControllerAnimated(true, completion:nil)
import Foundation
import UIKit
@objc
class BaseNavigationController: UINavigationController {
var childCtr: UIViewController?
override func viewDidLoad() {
self.navigationBar.hidden =true
if let ctr =childCtr {
self.addChildViewController(ctr)
}
}
override func popViewControllerAnimated(animated:
Bool) -> UIViewController? {
ifself.childViewControllers.count
==1 {
dismissViewControllerAnimated(true, completion:nil)
return
nil
}else {
returnsuper.popViewControllerAnimated(animated)
}
}
func addBasicChildViewController(ctr: UIViewController) {
self.childCtr = ctr
}
}
//顶部状态栏的颜色
import Foundation
import UIKit
class BaseLightNavigationController: BaseNavigationController {
override func preferredStatusBarStyle() ->
UIStatusBarStyle {
returnUIStatusBarStyle.LightContent
}
}
//animated:时候开启动画效果
let ctr = UIStoryboard(name:"LogIn_6p", bundle:nil).instantiateViewControllerWithIdentifier("loginMyselfNavigationController_6p")as!UINavigationController
let navController =
BaseLightNavigationController()
navController.childCtr = ctr
self.presentViewController(navController, animated:true, completion:nil)
//pushViewController跳转方式禁用,presentViewController跳转方式是新开一个栈,对应返回是
self.navigationController?.dismissViewControllerAnimated(true,
completion: nil)
,
showViewController在已有的栈上跳转,对应的返回是
返回根页面vc用 :
?
返回指定的某个vc用下面(通过index定位)
?
self.dismissViewControllerAnimated(true, completion:nil)
import Foundation
import UIKit
@objc
class BaseNavigationController: UINavigationController {
var childCtr: UIViewController?
override func viewDidLoad() {
self.navigationBar.hidden =true
if let ctr =childCtr {
self.addChildViewController(ctr)
}
}
override func popViewControllerAnimated(animated:
Bool) -> UIViewController? {
ifself.childViewControllers.count
==1 {
dismissViewControllerAnimated(true, completion:nil)
return
nil
}else {
returnsuper.popViewControllerAnimated(animated)
}
}
func addBasicChildViewController(ctr: UIViewController) {
self.childCtr = ctr
}
}
//顶部状态栏的颜色
import Foundation
import UIKit
class BaseLightNavigationController: BaseNavigationController {
override func preferredStatusBarStyle() ->
UIStatusBarStyle {
returnUIStatusBarStyle.LightContent
}
}
//animated:时候开启动画效果
let ctr = UIStoryboard(name:"LogIn_6p", bundle:nil).instantiateViewControllerWithIdentifier("loginMyselfNavigationController_6p")as!UINavigationController
let navController =
BaseLightNavigationController()
navController.childCtr = ctr
self.presentViewController(navController, animated:true, completion:nil)
//pushViewController跳转方式禁用,presentViewController跳转方式是新开一个栈,对应返回是
self.navigationController?.dismissViewControllerAnimated(true,
completion: nil)
,
showViewController在已有的栈上跳转,对应的返回是
返回根页面vc用 :
?
?
相关文章推荐
- 添加tomcat的相关类
- tp3.2不能自动加载公共配置文件config.php
- eclipse中的配详解置文件
- Java设计模式之建造者模式
- Hadoop集群安装配置
- 传输速率与吞吐量
- 夺命雷公狗---TP商城----TP之样式和特效以及图片引入---2
- [c#.Net]正则表达式 记录
- py替换掉换行符
- 蓝屏dump分析教程
- Java之矩阵求特征值
- Nginx 详解(一)
- c语言:输入10个数,输出值最大的元素和该数是第几个数。(数组元素作函数实参)
- Input常用的几个函数
- 人工智能学习笔记(一):简述人工智能的应用领域
- 第二周项目三 小试循环
- self表示的是当前类开辟内存的对象(文档里写的是当前的消息接受者 Return Value: The receiver.)
- Windows环境下PHP开发环境搭建 - 图文完全教程
- 正则表达式匹配URL或者网址
- linux mysql 移动位置