0

我剛剛開始學習Xcode和swift語言。爲了讓我自己熟悉它們,我試圖用我迄今爲止學到的東西來構建一個簡單的應用程序。 1表格單元的segue在選項卡和導航視圖控制器中

該屏幕截圖顯示了我想實現的功能。 VC1和VC2都是導航+選項卡VC。當用戶點擊VC1導航欄上的「預設」按鈕時,屏幕將切換到具有不同預設值表的VC2。我所做的就是創建一個從「預設」按鈕到VC2的動作順序(顯示)。迄今爲止都很好。

這是我想要做的,但無法想出辦法:在VC2的表格上,當用戶點擊任意一行時,他將被帶回到VC1,並且所選行中的值正被插入到VC1的文本字段中。

我試圖做的是從表單元格創建一個動作segue(顯示)到VC1。但通過這樣做,VC1和VC2上的導航欄和標籤欄已消失2

是我正在嘗試實現的嗎?如果是的話,我做錯了什麼?

回答

0

我傾向於使用故事板與IBAction爲返回到上一個視圖控制器,如

@IBAction func userDidSelectTableCell() { 
    self.navigationController?.popViewController(animated: true) 
} 

但在你的情況我覺得你一退卷後賽格瑞,我沒有用一個,但你可以在以下鏈接https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/閱讀更多關於他們的信息。 希望有幫助

0

爲了您的目的,您需要使用unwind segue。爲了達到這個目的,你首先需要在你的VC2類中聲明一個存儲所選行的值的全局變量。您可以使用didSelectRow方法。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     selectedCell = indexPath.row 
     self.performSegue(withIdentifier: "YourIdentifier", sender: self) 
    } 

您需要在您的VC1類中添加@IBAction方法。

@IBAction func unwindtoVC1(_ sender: UIStoryboardSegue){ 
    if let sourceVC = sender.source as? YourTableViewController { 
      yourTextFiled.text = sourceVC.selectedCell 
     } 
} 

在你故事情節,在VC2,從控制的viewController +拖放到出口部分來創建一個SEGUE。 enter image description here

從彈出窗口中選擇unwindtoVC1方法。

現在,選擇segue並在屬性檢查器中給它任何標識符。 enter image description here

使用該標識在VC2類,在didSelectRow方法,在self.performSegue(withIdentifier: "YourIdentifier", sender: self)

希望這有助於。

相關問題