關於Storyboard故事板, Segue 的使用,storyboard的拆分

1.相關介紹。

對於ios開發中,其實storyboard其實是比較有用的。它能夠讓你一眼看清應用的所有跳轉關係。Storyboard 在iOS5時引入,它能節約你創建UI的時間。storyboard與常規nib(nib文件後來改名叫xib文件,小夥伴不用糾結它是啥)文件相比,有很多優勢

1.storyboard可以描述各種場景之間的過渡,這種過渡被稱作"segue",你通過簡單的ctrl-dragging就能搞定,減少代碼量

2.storyboard支持table view的prototype cell,這意味着你可以在storyboard中編輯cell,減少代碼量

當然任何東西都有它存在的優點。

在我們常用的xib它和storyboard分開了。它更能方便你封裝,就是創建時時間長點,但是封裝好了後面複用的時候就比在storyboard中快了。我在storyboard中也編輯過cell,通過xcode拖拽編輯的cell是很快的,如果再用的使用也可以storyboard的cell佈局複製在要創建的viewcontroller中。

我親身實踐通過storyboard開發,會節省不少開發時間,我瞭解ios開發中大部分開發者都是用oc開發的。很多人只是簡單瞭解storyboard,並不會完全使用。會有擔心它不穩定,出問題了很難自己解決。的確用storyboard有一點小坑,但是當你熟悉它的脾氣後你就能很好使用它。關鍵是對於嘗試學習的同學來說,那些問題很可能讓他放棄學習使用storyboard,因爲有些問題。我認爲是編譯器的存在的不友好問題。對於開發者來說那些問題不是他們造成的。他們的實際上是沒有問題的。或者有小技巧他們不知道怎麼操作。還有就是出了錯他們不好定位。下面不廢話了,開始介紹使用。

2.大家應該知道ui佈局中的設置,優先級是低於代碼的。你在storyboard中的編輯設置後代碼做了設置看到的是代碼操作的結果。

xcode現在是10.2.1版本。添加控件之前在右側欄的下方,現在改到了右上方頂部。你可以搜索使用你需要的控件。

如圖是應用最開始的時候的。默認是應用啓動的viewcontorller。我們一般要有多個tab的可切換的view contorller。當你添加進來viewcontroller你會想要的是navigationcontroller。不瞭解的可以百度下。點擊選中你新添加的controller,如圖操作。

 如何將tabviewcontroller和navigationcontroller關聯起來。按住control鍵從tabviewcontroller中的小按鈕拖到navigationcontroller中即可如圖

拖拽後會有彈窗彈出選擇viewcontrollers即可。

後面的跳轉關係都是這樣選的不一樣,具體瞭解查看下面鏈接

Segue的幾種類型

有了這個sugue只是看到了界面的跳轉關係,並不能跳轉,當然如果你是從按鈕拖的,你點擊按鈕就能跳過去了,不用寫代碼了是不是很簡單。這樣就完了嗎?沒有

1.你是不是有時候要傳值,

2.有時候要判斷跳轉。或者你一個界面有多個sugue,你就要代碼控制了。

3.說到這裏,你有沒有想過你所有的界面關係,都在一個storyboard中畫出來問題很大,xcode要加載出來這個storyboard就很耗時了。你願意等嗎?就算你願意等,如果你是多個人協同開發問題來了,你們都在一個storyboard中做改動,合併不久衝突了嗎?

4.還有你第一個圖界面你設置了。如果需求你讓你動態改變有幾個nevigationcontroller

我們還是來繼續講sugue的使用。代碼控制要怎麼寫呢?

 點擊你的sugue看右側如圖的地方看我加了identifier,代碼中你要用這個來卻分你是哪個segue。

addTarget(self, action: #selector(completeBtnClicked(sender:)), for: .touchUpInside)

@objc func completeBtnClicked(sender: UIButton?){

        

        if  UserInfoManager.getUserInfo()?.identity == 2{

            performSegue(withIdentifier: "ToMatchmakerBaseInfoViewControllerSegueID", sender: nil)

        }else{

            performSegue(withIdentifier: "ToCompleteChildInfoViewControllerSegueID", sender: nil)

        }

    }

關於Storyboard故事板, Segue 的使用,storyboard的拆分(二)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章