[問題] dismissViewController

作者: y03131003 (Jimmy)   2014-02-26 15:23:05
我有A, B, C, D 四個viewController
A 是 rootViewController(TabBarViewController)
B 是 用AVFoundation寫的相機
A 用 modal 的方式叫出了 B
B 用 modal 的方式叫出了 C
C 用 modal 的方式叫出了 D
我想在D裡按一個按鈕回到A
一開始是在storyboard裡直接拉一個segue到A
然後performSegueWithIdentifier
不過這樣似乎有memory leak的問題,多重複幾次這個步驟記憶體就直線上升
最後導致當機
後來查了一下發現要回到 A 只要在 D裡取得rootViewController
然後rootViewController呼叫 dismissViewController 就行了
如下
[[[[UIApplication sharedApplication] keyWindow] rootViewController]
dismissViewControllerAnimated:NO completion:nil];
這樣的確可以成功,可是按下按鈕後大概要等2秒才會回到A..
請問有辦法按下的瞬間就回到A嗎?
用performSegue的方法可以瞬間,但是多重複幾次就當機了...
作者: y03131003 (Jimmy)   2014-02-26 16:45:00
我覺得很有可能是因為中間有個相機的viewController..
作者: uranusjr (←這人是超級笨蛋)   2014-02-26 17:18:00
你先一層一層 dismiss 看看到底是哪一個在慢
作者: howdiun (Howdiun)   2014-02-26 17:21:00
相機要關掉比較好吧....

Links booklink

Contact Us: admin [ a t ] ucptt.com