Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从另一个类移动ViewController类的屏幕转换_Ios_Swift_Xcode_Swift4_Xcode9 - Fatal编程技术网

Ios 从另一个类移动ViewController类的屏幕转换

Ios 从另一个类移动ViewController类的屏幕转换,ios,swift,xcode,swift4,xcode9,Ios,Swift,Xcode,Swift4,Xcode9,我的问题与标题完全相同。 请参阅下面的代码。 每个代码都列在单独的文件中。 我在ViewController类中编写了一个屏幕转换方法(如func goToSecondView())。 然后,我们决定在另一个文件(FirstFile)中的“iconATapped”方法中创建一个实例,并对ViewController进行屏幕转换。 但是,它没有成功,并发出以下错误。 调用操作方法时,此错误有效。 请告诉我解决这个问题的方法。 您使用的是ViewController.goToSecon

我的问题与标题完全相同。

请参阅下面的代码。
每个代码都列在单独的文件中。

我在ViewController类中编写了一个屏幕转换方法(如func goToSecondView())。
然后,我们决定在另一个文件(FirstFile)中的“iconATapped”方法中创建一个实例,并对ViewController进行屏幕转换。

但是,它没有成功,并发出以下错误。


调用操作方法时,此错误有效。

请告诉我解决这个问题的方法。


您使用的是ViewController.goToSecondView(),在goToSecondView中使用的是self

self.present(next,animated: true, completion: nil)
在这里,您的self将为零,因为您使用的不是ViewController的变量,而是它的类名。因此,没有ViewController的实例,因此导致nil


尝试在第一个文件中创建ViewController变量,然后尝试演示新的Vc。希望这有帮助

你到底想做什么?为什么把
goToSecondView
放在另一个视图控制器中?将其放在第一个文件中有什么问题?您的
序列图像板
变量为零,或者您的序列图像板中没有名为
secondView
的标识符。请添加序列图像板变量初始化代码。
//FirstFile

import UIKit

class goNextPage: UIView {

    @IBAction func iconATapped(_ sender: Any) {
        ViewController.goToSecondView()
    }

}


//SecondFile

import UIKit

class ViewController: UIViewController {

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

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

    func goToSecondView(){
        let next = storyboard!.instantiateViewController(withIdentifier: "secondView")
        self.present(next,animated: true, completion: nil)
    }
}
self.present(next,animated: true, completion: nil)