2017-05-01 5 views
0

通知ウィジェットから特定のビューを開きたいとします。 通常、他の答えは... (let viewcontroller = ...) を新しいビューを作成しているあなたは..だからswift3ナビゲーションビューコントローラーを表示する方法

を呼び出す使用メモリを継続し続ける場合ので、私はすでに私のアプリで開かれviewAを開き、viewBに移動したいです。

私のアプリケーションの構造は、基本的にアプリケーションが起動されたときのビューです。

私は、新しいviewAを作成する代わりに、既存のviewAからnavigation.pushを使用してviewBに移動したいと考えています。

特定のページが既に存在するかどうかをチェックする方法、そのページを一番上に表示する方法、およびnavigation.pushを操作する方法です。

今私はあなたが戻っviewAにポップするために、このような何かをしたいと思う、あなたはナビゲーションコントローラへのアクセスを持っていると仮定するとAppdelegate

let MainView: Main_View_List_ = mainStoryboard.instantiateViewController(withIdentifier: "Main_List_View") as! Main_View_List_ 
let nav = UINavigationontroller.init(rootViewController: MainView) 
UIApplication.topViewController()?.present(nav, animated: true, completion: nil) 

答えて

0

からviewAを開くには、このコードを使用しています:

 for viewController in nav.viewControllers { 
     if viewController is ViewAClass { 
      viewController.pushViewBFlag = true 
      nav.popToViewController(viewController, animated: true) 
      return 
    } 
    } 

viewAに戻ると、pushViewBFlagを確認してviewBを作成してプッシュすることができます。

また、viewAをナビゲーションコントローラのルートとして設定しているように見えるため、次の操作を実行できます。nav.popToRootViewControllerAnimated(true)を使用してviewAに戻ります。 viewAからviewBを押すことを処理する必要があります。

関連する問題