我需要一些幫助爲以下'問題'選擇'正確'的解決方案。防止視圖控制器被重置 - UINavcontroller + Storyboard + Segue的
我使用新的故事板功能將我的應用程序的所有屏幕鏈接在一起。基本結構能夠深入:
[導航控制器] => [視圖控制器#1] => [的TabBar控制器] => [視圖控制器#2] *
**(和一些其他標籤,其現在不重要)*
我已經從第一個視圖控制器(#1)附加了一個segue(推)到Tab Bar控制器後面的View Controller。當用戶按下第一個控制器上的某些東西並正常工作時,會觸發此推送。
// Execute preset segue
[self performSegueWithIdentifier:@"segueEventDetail" sender:self];
當用戶(現在是在視圖控制器#2)按壓導航欄的返回按鈕用戶回到。假設他現在再次觸發segue,第二個視圖控制器再次顯示,但現在「重置」(空)。 (我相信在閱讀了幾個論壇和文章之後,這是使用segue時的標準行爲,因爲這些會破壞並重新啓動視圖控制器的每一次?)
由於第二個視圖的內容(視圖控制器被重置)控制器是動態的(取決於來自服務器的JSON響應),因此當用戶回來時視圖控制器保持完整(或恢復)是'需要的'。
我發現了幾個來源(見底部)描述相同的問題,但解決方案各不相同,我需要一些幫助選擇正確的問題。
綜述:
- 我怎樣才能「保留」 /保存視圖控制器的狀態下,當用戶按下背部,同時保留使用故事板&最好也Segue公司的
自己的想法的:
#1我現在正在考慮將JSON響應緩存到我的單例類(並從那裏到PLIST)並在第二個查看控制器是否存在此數據,並重建視圖,然後檢查是否有新數據(恢復正常操作)。
#2我想到的另一個是'繞過'segue和手動處理視圖的切換,部分解釋(Storyboard - refer to ViewController in AppDelegate) - 這也有可能嗎?
但也許有一個更容易/更好的選擇?
http://www.iphonedevsdk.com/forum/iphone-sdk-development/93913-retaining-data-when-using-storyboards.html Storyboard - refer to ViewController in AppDelegate How to serialize a UIView?
從[UITabBarController類參考](http://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html)「部署標籤欄界面時,您必須安裝這個視圖作爲你的窗口的根目錄。與其他視圖控制器不同,一個標籤欄界面不應該被安裝爲另一個視圖控制器的子項。「無關緊要,但重要。 –
我沒有意識到這一點!這與我的問題有關,因爲我在tabcontroller前面有另一個viewcontroller。 – YDL