[英]Segue of Table cell in a tab and navtigation view controller
我剛剛開始學習Xcode和敏捷語言。 為了使自己熟悉它們,我正在嘗試使用到目前為止所學的知識構建一個簡單的應用程序。 1
屏幕截圖顯示了我想要實現的目標。 VC1和VC2都是導航+標簽VC。 當用戶點擊VC1導航欄上的“ Preset”按鈕時,屏幕將切換到VC2,該表的表具有不同的預設值。 我所做的是從“預設”按鈕到VC2創建一個動作選擇(顯示)。 到目前為止一切都很好。
這是我想要做的,但找不到解決方法:在VC2的表上,當用戶單擊任何行時,他將回到VC1,並且將所選行中的值插入到VC1中。 VC1中的文本字段。
我試圖做的是創建一個從表單元格到VC1的動作搜索(顯示)。 但是這樣做后,VC1和VC2上的導航欄和標簽欄消失了2
我想做到的是可以實現的嗎? 如果是,我做錯了什么?
我傾向於將情節提要與IBAction一起使用,以返回到先前的視圖控制器,例如
@IBAction func userDidSelectTableCell() {
self.navigationController?.popViewController(animated: true)
}
但是就您而言,我認為您是在一次休整之后,我沒有使用過,但是您可以在以下鏈接https://spin.atomicobject.com/2014/10/25/ios-unwind-segues上閱讀有關它們的更多信息。 / 。 希望能有所幫助
為了您的目的,您需要使用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中,按住Control鍵並從viewController拖放到Exit部分以創建segue。
從出現的彈出窗口中,選擇unwindtoVC1
方法。
在VC2類的didSelectRow
方法中的self.performSegue(withIdentifier: "YourIdentifier", sender: self)
使用此標識符。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.