2016-02-13 79 views
0

我有一個應用程序(我的第一個)有幾個視圖控制器。用按鈕傳遞數據

VC1 - 是一個名爲&圖像的tableView。 (列表)

VC2 - 是一個名稱,圖像和兩個按鈕的視圖。 (列表中添加/編輯視圖) 數據這兩種觀點之間傳遞工作正常使用協議

VC3 - 與另一個列表中的tableView。 (第一個列表的項目) 我在VC2上有一個按鈕,可以連接到VC3。

因此,一個用戶輸入第一個TableView並點擊一個tableViewCell,它會跳到第二個視圖以編輯該選定列表。而在第二個視圖(不是tableView)中,用戶點擊一個按鈕,該按鈕會延伸到第三個TableView以添加/編輯項目。然後,用戶點擊完成按鈕,將用戶發送回第二個視圖。

這是我的問題 - 我如何從VC2拾取/關聯列表名稱到VC3。當用戶點擊doneButton時,項目應該與用戶正在編輯的那個列表相關聯。

謝謝你,新手

+0

使用'代表' –

回答

0

Here是蘋果一個很好的教程向您展示如何做到這一點。基本思想是將東西添加到表格視圖中。在VC1中有一組對象,其中包含要顯示的所有內容。然後使用prepareForSegue將該數組傳遞給VC2(進而將其傳遞給VC3)。 Here是一個很好的賽格教程。

對於編輯(移動和刪除單元格),這有原生支持,所以你不必自己推出。該教程鏈接的底部顯示瞭如何啓用此功能。

刪除的基本思想是你想從數組中刪除元素,然後重繪沒有該元素的表視圖(VC1)。未能保持表視圖和陣列同步將導致崩潰。

+0

是的,這是一個很好的教程,我用它來爲我的大部分應用程序。但教程'segue'正在使用故事板。我正在使用一個按鈕。本教程還使用VC1上的附件按鈕轉到VC3。不同之處在於我試圖使用一個按鈕從VC2延伸到VC3。 – Kathe

+0

您可以通過使用選擇器方法初始化按鈕來實現此目的,並在該選擇方法內,向VC3控制器調用「preformSegue:」。這也將反過來稱爲'prepareForSegue:' – Cole

+0

對不起,我對此很新。我想你是在說。 @IBAction func itemsButton(){ \t \t let navigationController = storyboard!.instantiateViewControllerWithIdentifier(「ItemsViewController」)as! UINavigationController let controller = navigationController.topViewController as! ItemsViewController \t \t controller.delegate =自 \t \t presentViewController(navigationController,動畫:真,完成:無)\t \t} 如果這是你說的話,它給出的「錯誤不能分配的值鍵入VC1鍵入VC2「 – Kathe