2017-07-31 54 views
2

應用具有兩個視圖控制器:ViewController(這是一個顯示大多數應用的內容的主視圖控制器)和SecondViewController(經由UIButtonViewController訪問; SecondViewController僅用於顯示用戶的庫存,和內SecondViewController一個UIButton允許用戶返回原始視圖,ViewController)。目前,當用戶按下相應的UIButton時,應用程序使用「顯示」動作segue在視圖控制器之間切換。但是,從ViewController切換到SecondViewController,然後按UIButton返回到ViewController後,ViewController的屬性已被還原爲應用程序啓動時發生的屬性(背景顏色已更改,某些文本字段不應顯示) 。Xcode 8/Swift 3:當segue發生時如何讓ViewController保存狀態?

那麼,我怎麼的ViewController「狀態保存」,當用戶移動到SecondViewController,使用戶恢復他們離開的地方當他們返回ViewController

+2

使用*開卷SEGUE *返回第一個VC。 – vacawama

+0

https://stackoverflow.com/q/12561735/1630618 – vacawama

回答

1

你在找什麼是一個放鬆的過程。這裏有一個如何創建它的最簡單的方法:

  1. 在你ViewController(或者,基本上任何其他視圖控制器,你願意跳出來)創建一個接受賽格瑞的實例(函數名沒有按」一個IBAction爲噸真的重要):

    @IBAction func unwindToThisVC(segue: UIStoryboardSegue) { }

  2. 在故事板,去SecondViewController,並控制+拖動從UIButtonExit出口ViewController,然後選擇IBAction您創建我n級1: Control+Drag enter image description here

More on Unwind Segues

0

你現在這樣做的方式(使用Show從第二個返回到第一個)實際上帶來了第三個VC。

你想要做的就是關閉第二個視圖控制器。

正常的方法是爲第一個實現的第二個協議實現一個協議,然後在第二個協議中有一個函數讓第一個知道它已經完成。

當函數被調用時,第一個函數關閉第二個函數,然後它會再次顯示,其狀態保持不變。

+0

我該怎麼做呢? –

+0

https://sectionfive.net/blog/2015/10/23/a-swift-solution-to-view-dismissal/是一個很好的方法來做到這一點 –

相關問題