page jump

//pressemt<—>dismiss
//push<–>pop

let vc = PersonsViewController()
self.presentViewController(vc, animated: true, completion: nil)/

//self.navigationController!.pushViewController(vc,animated: true)

//let nav = UINavigationController(rootViewController: vc)
//self.presentViewController(nav, animated: true, completion: nil)

swift场转的几种方式及优缺点分析
http://my.oschina.net/JiangTun/blog/662369

http://jingsan0801.farbox.com/post/swift/swiftzhong-ye-mian-tiao-zhuan-de-san-chong-fang-shi
Swift中页面跳转的三种方式

第一种,很简单,直来直往

//跳转
self.presentViewController
//返回
self.dismissModalViewController
第二种,必须在当前视图有navigation,要不实现不了

self.navigationController?.pushViewController
self.navigationController?.popViewController
示例代码

let myStoryBoard = self.storyboard
let loginView:UIViewController = myStoryBoard?.instantiateViewControllerWithIdentifier(“login”) as UIViewController
//login是视图的storyboard id
self.navigationController?.pushViewController(loginView, animated: true)
第三种 通过ViewDelegate实现
在prepareForSegue中传递参数, 使用performSegueWithIdentifier跳转, 在shouldPerformSegueWithIdentifier 中判断是否应该跳转

// 在这个方法中给新页面传递参数
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier != “userInfoSegue” {
let segueName = segue.identifier
// 选中的行
let selectedRowIndex = self.personalInfoTableView.indexPathForSelectedRow()?.row
let controller = segue.destinationViewController as! UIViewController // 有多个view, 都是UIViewController的子类
// 取选中行的labelname, 设置目标controller的title
controller.title = lableNamesOfCersonalInfoCells[selectedRowIndex!]
}
}

http://www.hangge.com/blog/cache/detail_720.html
Swift - 纯代码实现页面segue跳转,以及参数传递

http://www.cnblogs.com/xiguain/p/3962809.html
[100天Swift]第五天:用代码实现视图跳转
在Xcode推出StoryBoard的时候,Xcode可以更简单的,更聪明的帮助我们做一些简单的事情,快速建立一个Base的App,可是作为一个习惯了写代码的“码农”,还是需要知道如何通过代码去实现这些“简单”的事情。

Swift中的视图跳转
1.跳转到任一UIViewController

var sb = UIStoryboard(name: “Main”, bundle:nil)
var vc = sb.instantiateViewControllerWithIdentifier(“ChooseViewController”) as ChooseViewController
self.presentViewController(vc, animated:true, completion:nil)

以上是为了StoryBoard设定了自己的起始控制器。

2.从当前视图跳转到下一视图

var vc = AnswerViewController()
self.presentViewController(vc, animated: true, completion: nil)

通过presentViewController方式实现。

3.通过dismissViewControllerAnimated(completion:)返回上一个视图

self.dismissViewControllerAnimated(true, completion:nil)

使用dismissViewControllerAnimated。
4.Modal Segue to channel Controller
通过在storyboard设计视图中,选择一个按钮,右键拖动到另一个视图,即可建立动作跳转,但需要重载func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)方法,如下:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
var channelC:ChannelController=segue.destinationViewController as ChannelController
channelC.delegate=self
channelC.channelData=self.channelData
}

这些方式应该是StoryBoard出现之后实现跳转的主要方式,注意要实现prepareForSegue,以及对应的参数哦。

5.通过navigationController.pushViewController(animated:)方法

var webView=WebViewController()
webView.detailID=data.newsID
//取导航控制器,添加subView
self.navigationController.pushViewController(webView,animated:true)
6.通过 func popViewControllerAnimated() -> UIViewController! 弹出最上面的视图,并返回下一个视图控制器

7.通过func popToViewController(animated:) -> AnyObject[]!返回到navigationController视图堆栈中指定的某一个视图

未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值