2015-12-14 43 views
0

我在UIViewController'A'上。我正在介紹(Modally - Cross Dissolve)UIViewController'B'。Modal Segue後從內存中移除UIViewController

'B'出現後,當我觸摸/點擊視圖時,'A'的TouchesBegan被觸發。所以我覺得在'B'出現後我需要從記憶中刪除'A'。

我想:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "gameLevel" 
     { 
      if let viewController: ViewController = segue.destinationViewController as? ViewController { 

       self.dismissViewControllerAnimated(false, completion: nil) 
      } 
     } 
    } 

Dosent似乎的工作。任何建議如何移動到'B'後從內存中刪除'A'?

回答

1

我不明白你爲什麼應該這樣做。如果您正在展示視圖控制器,那麼您的用戶體驗設計應該讓用戶回到它。這是預期的設計;如果你不想要這種體驗,請不要使用presentViewController:animated

此外,SDK中也沒有這樣做。如果您檢查文檔,這將非常明顯,presentingViewController是一個強有力的參考。

您可能需要的是刪除所有視圖層次並設置rootViewController您的應用程序委託的屬性。您可能無法獲得動畫;但底層視圖控制器可能會取消分配

+0

Hey Avi,謝謝。我沒有使用presentViewController:animated,我正在使用「performSegueWithIdentifier」。其實,我使用它的主要原因,而不是presentViewController:動畫這是因爲我使用它產生的動畫。我還沒有完全理解Modal與presentViewController之間有什麼區別,但我認爲使用presentViewController解除了之前的UIViewcontroller。底線,我如何保持模態演示文稿,但是防止在先前的UIViewController上發生這種「TouchesBean」方法? –

+0

模態演示文稿=='presentViewController:animated' – avismara

+0

您可以擴展嗎?以及準確放置代碼的位置? –

相關問題