关闭

page jump

157人阅读 评论(0) 收藏 举报
分类:

//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视图堆栈中指定的某一个视图

未完待续…

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:874899次
    • 积分:8223
    • 等级:
    • 排名:第2418名
    • 原创:219篇
    • 转载:82篇
    • 译文:0篇
    • 评论:76条
    文章分类