光陰似箭,日月如梭,轉眼間學習的旅途已通過了一大半了,忘着本身所敲過的成批的代碼,看着本身付出和努力,默默地爲本身這幾個月的奮鬥感到欣慰,不論學習的路途再怎麼的艱辛,可是本身仍是堅持過來了,回想着以往的本身,彷佛還從沒有這麼的堅持過,也沒有這麼的認真對待過,因此這麼艱難的路本身都走過來了,後面的我相信必定是絢麗的明天和輝煌的將來,也許有些人說當個程序員真的好苦,可是我並不這麼認爲,由於這是我想作的,也是我所向往的,更是我所選擇的道路,作「你」所想,實現咱們共同的目標!!!!程序員
在這看似漫長而又短暫的一天裏,我終於認識到了時間的寶貴,也認識了惜時的重要性,但願你們和我同樣都要珍惜時間,把握身邊的分分秒秒。今天咱們主要學習了Swift中的傳值問題,先是由前向後傳值,再者是右後往前傳值,固然方法也不止一種的啦,下面我就爲你們簡單地介紹下在傳值中咱們常常遇到的其中一種方法吧,望你們有所收穫的同時多提意見哈:app
1、Storyboard搭建UI界面步驟詳解ide
其中關於建立工程的步驟在這裏就很少提了,由於在前面已經說過了,固然了不懂的能夠再問哦,下面簡單說下傳值的基本流程:post
1.但是話步驟:學習
箭頭所指方向就是故事本也就是storyboard,接下來就要拖控件,進行UI界面的搭建了spa
先將本來帶有的Controller給刪除了,而後再重現拖上去一個NavigationController,固然了,這個控件是能夠進行搜索的,下面爲你們指出搜索的具體位置代理
固然在剛拖進去的時候尺寸會大的有點受不了,不過咱們仍是有針對方案的,下面爲你們指出code
首先咱們須要先選中咱們拖上去的控件而後選中紅色圈圈圈出的選項,接下來咱們就能夠看到矩形框圈出的區域了,咱們點擊它後,會彈出箭頭所指的提示框,咱們選擇箭頭所指的選項就能夠實現咱們的需求了。server
接下來的步驟相似於上面所說的就是單純的拖控件了,至於大小就不用管了,由於咱們在剛開始的時候已經調好了,控件拖好後的效果是這樣的,以下圖:blog
至於那個箭頭可能仍是有些人不知道的把,這個咱們須要在另一個選項中調,讓第一個視圖做爲咱們的根視圖控制器,如圖所示:
這樣簡單地UI界面就基本完成了
2、代碼實現具體的傳值過程
首先咱們須要建幾個類讓咱們所託控件根據實現需求分別繼承,其次而後咱們須要本身鍵model層,來進行數據管理,下面爲你們附上傳值的具體代碼,可能不夠詳細,有不足還請指出。
class AddressBookTableViewController: UITableViewController { var arry = [AddressBook]() func getData(ntf: NSNotification) { self.arry.append(ntf.object as AddressBook) } override func viewDidLoad() { super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("getData:"), name: "aaa", object: nil)
var model : AddressBook = AddressBook() var dic = Dictionary<String, String>() dic["name"] = nameTextFiled.text dic["sex"] = SexTextField.text dic["phoneNumber"] = PhoneTextField.text model.setValuesForKeysWithDictionary(dic) NSNotificationCenter.defaultCenter().postNotificationName("aaa", object: model, userInfo: dic) // self.delegate!.addInfo(model) var alt = UIAlertView(title: "添加成功", message: "已經將name:\(nameTextFiled.text) sex:\(SexTextField.text), phoneNumber:\(PhoneTextField.text)插入", delegate: self, cancelButtonTitle: "OK") alt.show()
這是一種從後往前的傳值方法,也就是相似於通信錄添加聯繫人的方法。
下面再爲你們介紹從前日後傳至的方法,也就是通信錄中點擊聯繫人跳轉至詳情頁的實現。
var arry = [AddressBook]() var model1 : AddressBook = AddressBook() var dic = Dictionary<String, String>() dic["name"] = "喬明" dic["sex"] = "不明" dic["phoneNumber"] = "110" model1.setValuesForKeysWithDictionary(dic) self.arry.append(model1)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. if sender is UITableViewCell { var cell = sender as UITableViewCell var indexPath = tableView.indexPathForCell(cell) var model = self.arry[indexPath!.row] var vc = segue.destinationViewController as ViewController vc.delegate = self vc.info = model } else { var vc = segue.destinationViewController as ViewController vc.delegate = self } } func addInfo(info: AddressBook) { self.arry.append(info) }
固然了,這個前提是要遵循代理,而後實現代理中的方法,具體的建立代理和代理方法我在下面爲你們補充上。
這就是兩種簡單地傳值方法,但願能夠幫助你們更快的學習Swift語言,若是有什麼不懂的儘管想我提出,有問必答哦,哈哈。
好了今天就寫到這裏了,要開始複習今天的知識點了,good good study, day day up! 哈哈,好好學習哦博友們,咱們一塊兒進步啦,加油加油!