美文网首页
iOS关于转场

iOS关于转场

作者: 我真不是他舅 | 来源:发表于2016-03-22 13:42 被阅读135次
一: 普通的转场(ctl-drag)

1.选中跳转的segue,然后给它一个identifier。

然后在需要跳转的地方用:

self.performSegueWithIdentifier("identifier", sender: self)。
二:跳转到指定页面(没有ctl-drag)

假如我从某个页面要跳到个人页面“PersonalController”,先在main.storyboard给“PersonalController”一个storyboard ID叫"confirmToPersonal",

然后在当前页面定义一个controller作为终点controller,

let personalController =  UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("confirmToPersonal")

接着在这个页面需要跳转的地方写上一句:

self.navigationController?.pushViewController(self.personalController, animated: true)

完成跳转(无需连线)。

三:反向转场:unwind segue

反向转场用于让view controller退场(dismiss),此方法只有一个参数:segue:UIStoryboardSegue。
如图,点击done后,回到collection view页面

collection view controller


屏幕快照 2016-03-22 13.24.03.png 屏幕快照 2016-03-22 13.24.14.png

1.先在collection view controller里加一个unwindsegue方法,方法名随便起。

 @IBAction func unwindToHome(segue: UIStoryboardSegue) {
//此方法可用于传值(反向转场的controller传值到这里)    
}

2.在storyboard 里将done连到exit。(这一步已经完成了反向转场)


屏幕快照 2016-03-22 13.39.55.png

3.从 collection view controller里跳转到图片的controller。

let destinationViewController = segue.destinationViewController as! UINavigationController
let photoViewController = destinationViewController.viewControllers[0] as! PhotoViewController
collectionView?.deselectItemAtIndexPath(indexPaths[0], animated: false)
ps: [正向转场]用segue.destinationViewController;[反向转场]用segue.sourceViewController。
四:从一个页面push到“登陆页面”,在登陆页面按“取消登陆”按钮,pop回原页面
//取消登陆
    @IBAction func cancelLogin(sender: AnyObject) {
        self.navigationController?.popViewControllerAnimated(true)
    }
    
    //题外话:如果登陆成功了,可以回到任何一个页面
    //self.navigationController?.pushViewController(self.personalController, animated: true)
    
效果如图: 屏幕快照 2015-12-31 17.28.46.png

相关文章

网友评论

      本文标题:iOS关于转场

      本文链接:https://www.haomeiwen.com/subject/xrqllttx.html