2016-08-19 8 views
3

2週間前、私は迅速かつiOSで旅を始めました。私は記憶に問題があります。当初、ログイン後、私のアプリは30MBを消費します。次に、メニューから4つのウィンドウを選択できます。私はこのコードを使用してそれらを切り替える:ソースコードから新しいコントローラを正しく開く方法は?

let controller = UIStoryboard(name:"Main", bundle:nil).instantiateViewControllerWithIdentifier(content[indexPath.row]) as! UINavigationController 
self.presentViewController(controller, animated: true, completion: nil) 

私は、メニューから別のオプションを選択すると新しいウィンドウが表示されますたびに、アプリがメモリの別の1メガバイトを消費します。いくつかの変更の後、アプリは90メガバイト(xcodeの楽器でチェックイン)を消費します。私は、このコードに何か問題があると確信しています。私は何とか古い窓を却下すべきですか?

+3

以前のビューコントローラを閉じるにはどうすればよいですか? – Miknash

+0

関連するコードを追加してください! – Lion

答えて

2

'presentViewController'を使用すると、モーダルにこれらの4つのビューを切り替えるというアイデアがある場合は、もっと多くのビューをモーダルに追加するだけです。TabBarControllerは使用するコンポーネントにする必要があります。一方

あなただけのこれらのビューの間で交換する最初のビューコントローラを変更したい場合は、あなたが使用して、コントローラ間のAppDelegate

func setRootViewController(viewController: UIViewController) { 
    self.window?.rootViewController = viewController 
} 

とスワップに以下を追加することで、ルートビューコントローラを変更する必要がありますあなたがそれを必要とするとき、次の

let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate 
     appDelegate?.setRootViewController(otherViewController) 

はそれが役に立てば幸い:)

+0

ありがとう、完璧に動作します;) –

関連する問題