2013-11-27 58 views
0

人們,我想彈出一個viewController使用NavigationView控制器上的普通後退按鈕,而不釋放由用戶創建的自定義視圖,任何人都知道一些方法來做到這一點? 因爲導航控制器的自然流動是釋放「poped」viewController!謝謝您的幫助!彈出視圖控制器沒有發佈

+0

爲什麼不保留一個被推送的視圖控制器的強引用,所以當它彈出時,你仍然在視圖控制器和視圖狀態的內存中。 – San

+0

保持對視圖的強烈參考,它應該留在記憶中。 – madmik3

+0

@madmik,保留對視圖的強烈引用而不是視圖CONTROLLER是個不錯的主意。視圖控制器的視圖中有我指向視圖控制器的IBAction鏈接,如果觸發了該操作,則會導致崩潰。 San建議保持對視圖CONTROLLER的強烈參考是正確的。 –

回答

0

可以在「彈出」視圖控制器中保存數據嗎?當它再次出現時,填充它?當視圖控制器被彈出時,它應該被釋放。

0

可以在全球陣列navigation.viewControllers陣副本之前彈出自定義視圖。彈出視圖後全局navigation.viewControllers分配全局數組。

的NSArray在AppDelegate中創建

appDelegate.nav = self.navigationController.viewControllers; 
[self.navigationController popViewControllerAnimated:YES]; 

然後後POP操作視圖分配全局陣列

-(void)viewWillAppear:(BOOL)animated 
{ 
    self.navigationController.viewControllers = appDelegate.nav; 
} 
0

好人民塔答案是,從故事板讓你的控制器,並且不使用順着接下去呼叫。

if(comparacao == nil) 
{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle: nil]; 
    comparacao = [storyboard instantiateViewControllerWithIdentifier:@"ComparacaoView"]; 
} 
[self.navigationController pushViewController:comparacao animated:YES]; 

因此,我用每個都使用之前創建的實例,並且我的用戶在該視圖中所做的每件事都得到了維護。

相關問題