Swift - 純代碼實(shí)現(xiàn)頁面segue跳轉(zhuǎn)预伺,以及參數(shù)傳遞

(本文代碼已升級(jí)至Swift3)

下面通過一個(gè)例子說明如何在代碼中進(jìn)行segue頁面的切換订咸,以及參數(shù)的傳遞曼尊。

樣例功能如下:
1,主界面中是一個(gè)列表(這個(gè)列表是在代碼中實(shí)現(xiàn))
2脏嚷,點(diǎn)擊列表項(xiàng)時(shí)骆撇,界面會(huì)切換到詳情頁面,同時(shí)傳遞改列表項(xiàng)的值到詳細(xì)頁面父叙。

效果圖如下:
原文:Swift - 純代碼實(shí)現(xiàn)頁面segue跳轉(zhuǎn)神郊,以及參數(shù)傳遞 原文:Swift - 純代碼實(shí)現(xiàn)頁面segue跳轉(zhuǎn),以及參數(shù)傳遞

實(shí)現(xiàn)步驟:
1趾唱,在storyboard中拖入一個(gè)新的 ViewController 用做詳情頁面屿岂,同時(shí)創(chuàng)建一個(gè)繼承ViewController的新類 DetailViewController。并將其與storyboard中新建的詳情頁面進(jìn)行視圖與控制器的綁定鲸匿。
原文:Swift - 純代碼實(shí)現(xiàn)頁面segue跳轉(zhuǎn),以及參數(shù)傳遞

2阻肩,在storyboard中带欢,選中詳情頁面,通過最上方的Detail View Controller拖拽到主頁面進(jìn)行segue關(guān)聯(lián)(show detail)
(右鍵點(diǎn)擊 Detail View Controller 頭部黃色的標(biāo)志烤惊,在出現(xiàn)的菜單中選擇“show detail”旁邊的圓圈乔煞,在圓圈上按住左鍵拖動(dòng)到主頁面)
原文:Swift - 純代碼實(shí)現(xiàn)頁面segue跳轉(zhuǎn),以及參數(shù)傳遞
關(guān)聯(lián)后如下:
原文:Swift - 純代碼實(shí)現(xiàn)頁面segue跳轉(zhuǎn)柒室,以及參數(shù)傳遞

3渡贾,選中關(guān)聯(lián)線,設(shè)置segue的 Identifier 屬性為“ShowDetailView”
原文:Swift - 純代碼實(shí)現(xiàn)頁面segue跳轉(zhuǎn)雄右,以及參數(shù)傳遞

4空骚,主界面代碼 ViewController.swift

import UIKit
 
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
     
    var ctrlnames:[String] = ["任務(wù)1","任務(wù)2","任務(wù)3"]
    var tableView:UITableView?
     
    override func loadView() {
        super.loadView()
    }
     
    override func viewDidLoad() {
        super.viewDidLoad()
        //創(chuàng)建表視圖
        self.tableView = UITableView(frame: self.view.frame, style:.plain)
        self.tableView!.delegate = self
        self.tableView!.dataSource = self
        //創(chuàng)建一個(gè)重用的單元格
        self.tableView!.register(UITableViewCell.self, forCellReuseIdentifier: "cell1")
        self.view.addSubview(self.tableView!)
    }
     
    //在本例中,只有一個(gè)分區(qū)
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
     
    //返回表格行數(shù)(也就是返回控件數(shù))
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.ctrlnames.count
    }
     
    //創(chuàng)建各單元顯示內(nèi)容(創(chuàng)建參數(shù)indexPath指定的單元)
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
        -> UITableViewCell {
        //為了提供表格顯示性能擂仍,已創(chuàng)建完成的單元需重復(fù)使用
        let identify:String = "cell1"
        //同一形式的單元格重復(fù)使用囤屹,在聲明時(shí)已注冊(cè)
        let cell = tableView.dequeueReusableCell(withIdentifier: identify,
                                                 for: indexPath) as UITableViewCell
        cell.accessoryType = .disclosureIndicator
        cell.textLabel?.text = self.ctrlnames[indexPath.row]
        return cell
    }
     
    // UITableViewDelegate 方法,處理列表項(xiàng)的選中事件
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        self.tableView!.deselectRow(at: indexPath, animated: true)
        let itemString = self.ctrlnames[indexPath.row]
         
        self.performSegue(withIdentifier: "ShowDetailView", sender: itemString)
    }
     
    //在這個(gè)方法中給新頁面?zhèn)鬟f參數(shù)
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "ShowDetailView"{
            let controller = segue.destination as! DetailViewController
            controller.itemString = sender as? String
        }
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

5逢渔,詳情頁面代碼 DetailViewController.swift

import UIKit
 
class DetailViewController: UIViewController {
     
    var itemString:String?
     
    @IBOutlet weak var textField: UITextField!
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        textField.text = itemString
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }  
}

注:如果想在詳細(xì)頁中返回主頁面肋坚,可以在詳細(xì)頁中添加一個(gè)返回按鈕,按鈕響應(yīng)代碼如下:

//返回到上一個(gè)頁面
self.presentingViewController!.dismiss(animated: true, completion: nil)

原文出自:www.hangge.com 轉(zhuǎn)載請(qǐng)保留原文鏈接:http://www.hangge.com/blog/cache/detail_720.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肃廓,一起剝皮案震驚了整個(gè)濱河市智厌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盲赊,老刑警劉巖铣鹏,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哀蘑,居然都是意外死亡吝沫,警方通過查閱死者的電腦和手機(jī)呻澜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惨险,“玉大人羹幸,你說我怎么就攤上這事”栌洌” “怎么了栅受?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)恭朗。 經(jīng)常有香客問我屏镊,道長(zhǎng),這世上最難降的妖魔是什么痰腮? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任而芥,我火速辦了婚禮,結(jié)果婚禮上膀值,老公的妹妹穿的比我還像新娘棍丐。我一直安慰自己,他們只是感情好沧踏,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布歌逢。 她就那樣靜靜地躺著,像睡著了一般翘狱。 火紅的嫁衣襯著肌膚如雪秘案。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天潦匈,我揣著相機(jī)與錄音阱高,去河邊找鬼。 笑死茬缩,一個(gè)胖子當(dāng)著我的面吹牛讨惩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寒屯,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼荐捻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了寡夹?” 一聲冷哼從身側(cè)響起处面,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菩掏,沒想到半個(gè)月后魂角,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡智绸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年野揪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了访忿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斯稳,死狀恐怖海铆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挣惰,我是刑警寧澤卧斟,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站憎茂,受9級(jí)特大地震影響珍语,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜竖幔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一板乙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拳氢,春花似錦募逞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽戒职。三九已至栗恩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洪燥,已是汗流浹背磕秤。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捧韵,地道東北人市咆。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像再来,于是被迫代替她去往敵國(guó)和親蒙兰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,331評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)芒篷、插件搜变、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,124評(píng)論 4 61
  • 有了孩子的媽媽篡帕,不管之前多么的“漢子”殖侵,都會(huì)變得更加細(xì)膩和溫柔贸呢。 可有的媽媽,往往過了頭拢军,衣食住行吃喝拉撒都操碎了...
    奇媽育兒閱讀 1,315評(píng)論 0 0
  • 下面的段落楞陷,概述了一個(gè)重要的不同觀點(diǎn)。讀后朴沿,通過去圖書館 / 或者網(wǎng)絡(luò)猜谚,找出人們所說這個(gè)問題的有關(guān)知識(shí)。確定覆蓋了...
    毛旭天閱讀 182評(píng)論 0 1