国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

分享一個關于Storyboard 跳轉與傳值

2019-10-21 18:56:42
字體:
來源:轉載
供稿:網友
近日不忙,給大家分享一個關于storyboard跳轉傳值的相關知識,感興趣的朋友一起看看吧
 

寫在前面的知識:

因為蘋果推 Storyboard 而且 目前來看, Apple Watch 也是用 Storyboard 就知道, 明天應用估計都是 Storyboard 的天下了.
 (水平有限, 不對之處在所難免, 望海涵)

很多人似乎還是在用 XIB, 對 Storyboard 如何進行跳轉 似乎 懵懵懂懂...

好吧, 鑒于 早上群里, 有人問 怎么跳轉, 怎么傳值 等等問題. 就做下總結, 同時為大家 提供一些方法和參考.
 ***

1. 最簡單的方法

拖拽, 這個就不用多解釋了吧. 直接拖拽到另一個視圖控制器, 選擇 show, 就行了.

2. 利用 Segue 方法 (這里主要是 方法1 的傳值)

連好線, 點擊連線中間部分, 設置 Identifier.

然后 調用 performSegueWithIdentifier 方法.

(注: Demo 里面, 是直接將 TableViewController 和 SecondViewController 進行連線, 而不是 點擊 Cell 的 indicator 進行連線)

執行以下 方法, 就可以進行 跳轉操作了.

performSegueWithIdentifier("SecondSegue", sender: self)

如何傳值?

很簡單, 需要調用 prepareForSegue 方法 (因為這里是 父視圖 -> 子視圖 傳值, 所以要用 destinationViewController)

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {var theSegue = segue.destinationViewController as SecondViewControllertheSegue.text = "Pass"}

(注: 這里, Swift 的 自動補全可能失效, 所以 如果沒有出現 destinationViewController, 沒關系往后打.)

這里的 text 是我在 子視圖中 聲明的變量, 用來設置 Label 的 值.

PS:

 一般, 我們都用使用連線的方式, 這里告訴大家另一個方式, 就是用 viewWithTag. 我先前在 Label 控件 Tag 中設置為 100.

當然你也可以使用連線, 使用 viewWithTag 可以在我們自定義 Cell 的時候 方便用到, 而不需要創建單獨的 Cell class.

3. 利用 self.storyboard

利用 self.storyboard 方法, 就不需要進行 連線, 一樣可以進行視圖之間的跳轉. 但是必須要設置 Storyboard ID.

然后利用 如下方法進行 跳轉 和 傳值

 var thirdVC =   self.storyboard?.instantiateViewControllerWithIdentifier("ThirdViewController")  as ThirdViewControllerthirdVC.text = "Pass"self.navigationController?.pushViewController(thirdVC, animated: true) 

因為是在 同一個 Storyboard 里面進行跳轉, 所以 self.storyboard 就可以滿足需求.

不明白? 看最后一個方法:

4. 利用 UIStoryboard

XIB 方法, 我們需要 用到 nibName, 同樣 如果我們想要 分離多個 sence 在不同的Storyboard 里面, 怎么辦?

這個時候, 就不能使用 self.storyboard 了.

而是:

var storyboard = UIStoryboard(name: "New", bundle: nil)var newVC = storyboard.instantiateViewControllerWithIdentifier("NewViewController") as NewViewControllernewVC.text = "Pass"self.navigationController?.pushViewController(newVC, animated: true)

是不是和XIB有異曲同工的感覺, 這樣就可以把 Storyboard分幾個, 每個里面放幾個 Sence.

這樣的好處就是, 當你需要做多個不同功能的模塊的應用, 分離到不同的 Storyboard 中, 彼此互不影響.

相對于XIB來說, 每個文件夾只需要 1 個Storyboard文件, 和Swfit 文件就可以了.

以上敘述是小編給大家分享storyboard跳轉傳值的相關知識,希望大家喜歡。



注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐山市| 永仁县| 罗山县| 雅江县| 宜兰县| 蒙自县| 邹平县| 长治市| 蓬溪县| 赤城县| 兖州市| 昌平区| 永新县| 博白县| 西吉县| 娱乐| 奈曼旗| 开化县| 哈尔滨市| 马公市| 剑阁县| 渭南市| 沐川县| 离岛区| 安龙县| 安徽省| 遂宁市| 拉孜县| 嵊泗县| 凤阳县| 克拉玛依市| 余干县| 信阳市| 屏山县| 手游| 炎陵县| 宾阳县| 迁西县| 曲水县| 冀州市| 颍上县|