2013-09-29 45 views
1

我正在創建一個應用程序,其中需要View Controller的映射在切換到View Controller B後處於相同狀態。但是,我不知道如何切換視圖以查看相同的狀態?當我從View Controller B切換回View Controller A時,意味着我需要創建View Controller A的新實例,然後推送該View Controller。但是,這意味着我從第一次加載時就丟失了所有實例數據。我如何在第一次看到這些數據時保存數據?切換到View Controller B後如何保持View Controller A的狀態?

回答

0

我的印象是,我需要製作View Controller A的新實例,然後推送View Controller。

絕對不是。假設您使用的是導航控制器,並且您已經按下了控制器B,只需將其彈出(導航控制器上的popViewController:)即可返回到原始實例A.

創建A的新實例看起來像一個壞的因爲它可以導致無限高的導航堆棧。

如果您正在展示模態視圖控制器,其原理是相同的。 present...將B置於A之上。dismiss...將刪除B並將您帶回原始A.

+0

我該如何「回到A的原始實例」? –

+0

使用popViewController。你在使用導航控制器嗎?你如何從A轉移到B?你提到推動,所以我假設你正在使用導航控制器。 – jrturton

+0

我使用「presentViewController」來呈現新的視圖控制器,並使用「dismissViewController」來關閉當前的視圖控制器。什麼樣的代碼可以回到原始狀態? –

0

您需要了解當您從一個視圖控制器移動到下一個視圖時,新視圖不會顯示,直到你已經將控制權交還給了IOS(或者你已經退出了該方法)。

例如

presentviewcontroller ... ..

做點什麼

回報; - >你的新視圖控制器只在這個語句後得到控制 }

所以變量像 NSString * c = @「YES」; 將消失,但

properties such as 

    @property (nonatomic,strong) *c; 

will retain whatever value you have placed in it. 

這是您的問題嗎?

+0

如果您想知道在dissmissviewcontroller之後你將處於等待狀態,等待最後一個控制器的最後一個視圖的響應。 (等待按下按鈕)。 – Paulo

相關問題