回答編集履歴

1 naviらない。

fuzzball

fuzzball score 16316

2017/03/01 13:37  投稿

popToRootViewController(animated:)で最初のViewControllerまで戻れますが、CollectionViewControllerがModalのようなので、dismiss(animated:completion:)してからpopToRootViewController(animated:)を呼ばないといけないかも知れません。
popToRootViewController(animated:)で最初のViewControllerまで戻れますが、CollectionViewControllerがModalのようなので、dismiss(animated:completion:)してからpopToRootViewController(animated:)を呼ばないといけないかも知れません。
# UINavigationControllerを使用しない
3→2から2→1へ無理やり繋げてみました。
Swift3化したつもりですが、エラーが出たら適当に直して下さい。
戻るときのアニメーションについては、dismissのtrue/falseで調整して下さい。
##### SecondViewController
```swift
override func viewWillAppear(animated: Bool) {
   super.viewWillAppear(animated)
   if let presented = presentedViewController {
       if type(of: presented) == CollectionViewController.self {
           //CollectionViewControllerから戻ってきたときの処理
           print("[2] dismiss!")
           dismiss(animated: true) {
               print("[2] dismissed.")
           }
       }
   }
}
```
##### CollectionViewController
```swift
@IBAction func tapped(sender: UIButton) {
   print("[3] dismiss!")
   dismiss(animated: true) {
       print("[3] dismissed")
   }
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る