2013-03-06 48 views
1

我可以使用沒有segues的導航(1),但我想使用它(2)。執行Segmentation時避免MomoryLeak

執行segue並導航回來讓我的應用程序變得更慢!因爲當我導航回來時它不會處理目標視圖。你如何以正確的方式使用這種方法?

/*1) This code ok! But what about segues */ 
     if(_tabbarController==null) 
     _tabbarController = (UITabBarController)this.Storyboard 
          .InstantiateViewController ("MainTabbarController"); 
     this.NavigationController.PushViewController (_tabbarController,true); 

/*2) If I run this code I get a new instance of UITabbar */   
     this.PerformSegue("SegueShowDetail",this); 

回答

0

如果您使用Storyboard和導航控制器,導航控制器應該在彈出堆棧時自動釋放視圖和關聯的內存。

舉例來說,如果你已經有了一個當你按下一個按鈕,去到另一個觀點,被調用的方法,你必須:

[self performSegueWithIdentifier:@"mySegueName" sender:self]; 

當您單擊後退按鈕在左上角的次要視圖,這將觸發導航控制器處置該視圖。

+0

當然,我期待同樣的行爲,但我認爲'monotouch'的事情是不同的。如果我在我的應用中使用塞格導航會變得非常慢一段時間。針對Objective-C的AFAIK最近實施了一些自動解除分配。當我開始使用它時,我們應該手動取消分配。 – 2013-04-12 05:15:55