簡體   English   中英

選項卡和導航視圖控制器中的Table單元格的Segue

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM