Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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 按下按钮时按下“新建视图控制器”_Ios_Swift_Uinavigationcontroller_Swift4_Swift5 - Fatal编程技术网

Ios 按下按钮时按下“新建视图控制器”

Ios 按下按钮时按下“新建视图控制器”,ios,swift,uinavigationcontroller,swift4,swift5,Ios,Swift,Uinavigationcontroller,Swift4,Swift5,我正在用Swift 5编程构建一个游戏,希望从主菜单导航到游戏屏幕。这是我的密码: func handleButtonsTapped() { playButton.addTarget(self, action: #selector(pushGameViewController), for: .touchUpInside) } 以及用于在点击时推动视图控制器的选择器: @objc func pushGameViewController() { let destinationVC

我正在用Swift 5编程构建一个游戏,希望从主菜单导航到游戏屏幕。这是我的密码:

func handleButtonsTapped() {
    playButton.addTarget(self, action: #selector(pushGameViewController), for: .touchUpInside)
}
以及用于在点击时推动视图控制器的选择器:

@objc func pushGameViewController() {
    let destinationVC = GameViewController()
    navigationController?.pushViewController(destinationVC, animated: true)
}

当我在模拟器中点击按钮时,什么也没发生。我在viewDidLoad函数中也调用了handleButtonsTapped

这是我的代码,可以运行

您的ViewController是否设置为UINavigation

@IBOutlet weak var playButton: UIButton!

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

func handleButtonsTapped() {
    playButton.addTarget(self, action: #selector(pushGameViewController), for: .touchUpInside)
}

@objc func pushGameViewController() {
    let destinationVC = GameViewController()
    navigationController?.pushViewController(destinationVC, animated: true)
}

这是我的代码,可以运行

您的ViewController是否设置为UINavigation

@IBOutlet weak var playButton: UIButton!

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

func handleButtonsTapped() {
    playButton.addTarget(self, action: #selector(pushGameViewController), for: .touchUpInside)
}

@objc func pushGameViewController() {
    let destinationVC = GameViewController()
    navigationController?.pushViewController(destinationVC, animated: true)
}
有答案了

在我的SceneDelegate.swift中,我设置:

现在它工作了!谢谢大家的评论:

得到了答案

在我的SceneDelegate.swift中,我设置:


现在它工作了!谢谢大家的评论:

您不能直接初始化情节提要视图控制器插座。相反,您可以从故事板所在的捆绑包中加载它。遵循以下步骤

首先,根据屏幕截图设置故事板Id“GameViewController”。 然后将pushGameViewController功能替换为以下功能

@objc func pushGameViewController() {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let destinationVC = storyboard.instantiateViewController(withIdentifier: "GameViewController")
    self.navigationController?.pushViewController(destinationVC, animated: true)
}

不能直接初始化情节提要视图控制器出口。相反,您可以从故事板所在的捆绑包中加载它。遵循以下步骤

首先,根据屏幕截图设置故事板Id“GameViewController”。 然后将pushGameViewController功能替换为以下功能

@objc func pushGameViewController() {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let destinationVC = storyboard.instantiateViewController(withIdentifier: "GameViewController")
    self.navigationController?.pushViewController(destinationVC, animated: true)
}
确保在界面生成器中为视图控制器提供名为GameViewController的情节提要id


确保在界面生成器中为视图控制器提供名为GameViewController的情节提要id

是否调用pushGameViewController?使用print或断点来查找。应该在点击按钮时调用它,但我将使用print语句来确保。是否调用pushGameViewController?使用print或断点来查找。应该在点击按钮时调用它,但我将使用print语句来确保。