2016-04-30 2 views
0

私はsegueを使用せずにVC1からVC2を提示しようとしています。できます。その後、私はself.navigationController?.popViewControllerAnimated(true)を使用しようとしましたが、動作しません。私はVC2からVC1に戻るために使用すべきコードが何であるか疑問に思います。以下のコードはappDelegateにあります。現在のビューコントローラがsegueによって表示されないときに戻る。 Swift

AppDelegate

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let VC2 = storyboard.instantiateViewControllerWithIdentifier("VC2") as! VC2 
let navController = UINavigationController(rootViewController: VC2) 
self.topViewController()!.presentViewController(navController, animated: false, completion: nil) 

func topViewController(base: UIViewController? = UIApplication.sharedApplication().keyWindow?.rootViewController) -> UIViewController? { 
    if let MMDrawers = base as? MMDrawerController { 
     for MMDrawer in MMDrawers.childViewControllers { 
      return topViewController(MMDrawer) 
     } 
    } 
    if let nav = base as? UINavigationController { 
     return topViewController(nav.visibleViewController) 
    } 
    if let tab = base as? UITabBarController { 
     if let selected = tab.selectedViewController { 
      return topViewController(selected) 
     } 
    } 
    if let presented = base?.presentedViewController { 
     return topViewController(presented) 
    } 
    return base 
} 

VC2

@IBAction func backButtonTapped(sender: AnyObject) { 
    print(self.navigationController?.viewControllers) // print([<MyAppName.VC2: 0x12f147200>]) 
    self.navigationController?.popViewControllerAnimated(true) 
} 
+0

print self.navigationcontroller.viewcontrollers backbuttonTappedメソッドにブレークポイントを設定し、それに応じてコードを更新してください。 –

+0

印刷しようとしました(self.navigationController?.viewControllers)。それは[] – Tony

+0

を表示します。表示画面を提示していて、動作しないpopviewcontrollerを使用して戻ろうとしているため、以前の画面に戻らなくなります。dismissviewcontrollerを使用すると、前の画面に戻ります。 –

答えて

0
ここ

あなたのナビゲーションの流れは次のとおりです。

現在の画面 - 自身がして、ナビゲーションコントローラ内埋め込む新しい画面を(提示vc2)ので、Popviewcontrollerは動作しません。

もしあなたがviewcontrollerを提示するならば、popviewcontrollerは以前の画面を出すためにdismissviewcontrollerを使うのではなく、働きません。解決

self.dismissViewControllerAnimated(true, completion: {}) 

はこれを使用してください!おかげさまで

関連する問題