在Swift 3中以编程方式转到另一个视图

Gij*_*ese 3 ios swift swift3

我正在使用以下代码以编程方式在swift 3中转到另一个视图.运行时没有错误.但不知道为什么不这样看

我使用的代码:

let images = self.storyboard?.instantiateViewController(withIdentifier:"Collection") as! UICollectionViewController
            self.navigationController?.pushViewController(images, animated: true)
Run Code Online (Sandbox Code Playgroud)

我想转到CollectionView.swift 在此输入图像描述

在此输入图像描述

Wil*_*son 6

要在视图控制器之间导航,请使用UINavigationController.

我将为您提供导航的基本示例,希望它可以帮助您在项目中进行导航.


结果

ViewController在导航之间将图像传递给DetailViewController:


设置视图

首先确保您的根控制器嵌入了导航控制器控件,以便您可以使用segues进行导航:

在此输入图像描述

连接用于导航的视图.

在此输入图像描述


class ViewController: UIViewController {

  @IBOutlet weak var imageView: UIImageView!

  override func viewDidLoad() {
    super.viewDidLoad()
  }

  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    // showDetail Segue
    if segue.identifier == "showDetail" {
      // Sending the image to DetailViewController
      // Before appears in the screen.
      let detailViewController = segue.destination as! DetailViewController
      detailViewController.image = sender as? UIImage
    }

  }

  @IBAction func loginButton(_ sender: AnyObject) {

    // Go to another view controller
    performSegue(withIdentifier: "showDetail", sender: imageView.image)

  }

}
Run Code Online (Sandbox Code Playgroud)
class DetailViewController: UIViewController {
  @IBOutlet weak var imageView: UIImageView!
  var image: UIImage?

  override func viewDidLoad() {
    super.viewDidLoad()

    if let imageSent = image {
      imageView.image = imageSent
    }
  }
}
Run Code Online (Sandbox Code Playgroud)