用Swift完成不同View Controller之间的切换

用Swift完成不同View Controller之间的切换,第1张

概述用Swift完成不同View Controller之间切换 2015-02-12       0  个评论    来源:KaKa的专栏    收藏     我要投稿 之前用objective-c开发时,页面之间的切换很容易。其实用swift没有很大的变化,如果你是用storyboard完成的界面,基本上是同样的方式,只不过在代码部分写成swift风格的就行了。 今天在实验开发一个简单的小程序时, 用Swift完成不同VIEw Controller之间的切换 2015-02-12 0 个评论 来源:KaKa的专栏 收藏 我要投稿

之前用objective-c开发时,页面之间的切换很容易。其实用swift没有很大的变化,如果你是用storyboard完成的界面,基本上是同样的方式,只不过在代码部分写成swift风格的就行了。

今天在实验开发一个简单的小程序时,却遇到了一些BUG,后来还是求助stackoverflow上的大神解决了问题,在此做下记录。

我的程序结构是这样的,在一个页面A中有个按钮,然后点击按钮以后,切换到另一个页面B。A和B都在同一个storyboard中。

这里先说下通用的方法:

手动用代码建好的vIEw controller,即不是在storyboard中建立的:

?
1 2 3 var vc = VIEwController() self.presentVIEwController(vc,animated: true ,completion: nil) return

在storyboard中建立的可以用下面的代码:

let sb = UIStoryboard(name: "Main" let vc = sb.instantiateVIEwControllerWithIDentifIEr( "tabbarController" ) as VIEwController

所以我的程序就是,在A的类中,定义下面的button action:

3 4 5 @IBAction func login(sender: UIbutton) { let sb = UIStoryboard(name: ) as UITabbarController } 注意我这里as后并没有写成VIEwController,BUG就出现在这里。当我最初写的是vIEwController时,总会出BUG,提示这样:




我Google了关于dynamic Cast Class Unconditional也没有找到太多有用的信息,没有办法只有求助stackoverflow的大神了,很快就有人回复:



原来是因为我从storyboard读到的被命名为tabbarController的控件不能被强制转换(as)成vIEwcontroller,因为它其实是一个UITabbarController,也就是说,as后面你想要强制转换成的一定要与storyboard中的保持一致。

所以,代码就那么几行,但是不能生搬硬套。

如果你的storyboard中是vIEwcontroller,就as成vIEwcontroller,如果是UITabbarController就as成为UITabbarController,如果是其它的诸如UItableVIEwController,你知道怎么做。

总结

以上是内存溢出为你收集整理的用Swift完成不同View Controller之间的切换全部内容,希望文章能够帮你解决用Swift完成不同View Controller之间的切换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077952.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)