gpt4 book ai didi

ios - Swift - 一个屏幕到另一个屏幕

转载 作者:搜寻专家 更新时间:2023-11-01 07:34:11 24 4
gpt4 key购买 nike

我已经为您设置了两个屏幕的 UI,我不想在 main.storyboard 中连接屏幕。我想点击一个按钮,它会进入那个屏幕,我稍后会做淡入淡出的动画和类似的东西。我只需要知道当我按下一个按钮时如何从一个屏幕转到下一个屏幕。我可以举一个例子来说明我在下面谈论的内容。

示例:在开始游戏之前,在 flappy bird 中它会告诉您点击屏幕,然后当您点击时文本淡出。这就是我想用我的游戏做的。我不确定那是另一个屏幕,还是在点击屏幕后使某些标签消失的 1 个 View 。

我的 MainMenuViewController:

import UIKit
import SpriteKit


class MainMenuViewController: UIViewController {


var mainMenuScene: MainMenuScene!



@IBOutlet weak var playButton: UIButton!


@IBAction func playButtonPressed(sender: AnyObject) {
mainMenuScene.playButtonPressed(sender)
}


@IBAction func playerButtonPressed(sender: AnyObject) {
println("player")
}

@IBAction func LeaderboardButtonPressed(sender: AnyObject) {
println("leaderboard")
}

@IBAction func shopButtonPressed(sender: AnyObject) {
println("shop")
}


override func viewDidLoad() {
super.viewDidLoad()


//set up game screens

// Configure the view

// store a ref

// Create and configure the scene
mainMenuScene?.scaleMode = .AspectFill

// Present the scene
}



override func shouldAutorotate() -> Bool {
return true
}

override func supportedInterfaceOrientations() -> Int {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
} else {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}

override func prefersStatusBarHidden() -> Bool {
return true
}
}

我的 MainMenuScene:

import Foundation
import UIKit
import SpriteKit

class MainMenuScene: SKScene {

var movingGround: PPMovingGround!
var square1: PPSquare1!
var wallGen: PPWallGen!

var isStarted = false

var playButton: UIButton!



func playButtonPressed(sender: AnyObject) {
start()

}


func start() {
isStarted = true

square1.stop()
movingGround.start()
wallGen.startGenWallsEvery(1)
}


override func didMoveToView(view: SKView) {

}


override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {


}

override func update(currentTime: CFTimeInterval) {

}

}

我想将此代码连接到我的 GameScene 文件。我该怎么做?

最佳答案

我想我知道你的目标是什么,因为你不想直接使用 Main.storyboard,你可以这样做:

presentViewController(YourNextViewController, animated: true, completion: nil)

您可以在当前所在的 ViewController 中调用它以转到下一个。

假设您在主屏幕上,正如您在 Flappy Bird 中所说,当您点击按钮时,它可能会更改为不同的 View Controller

我的建议是将此方法嵌套在一个函数中,这样您就可以在 gameStart 函数中调用它,如下所示:

func changeViewControllers() {
presentViewController(GameViewController, animated: true, completion: nil)
}

然后在您的 gameStart() 中调用它:

func gameStart() {
changeViewControllers()
//other code
}

//=====================================================================

好的,我将在您点击播放按钮时帮助您进入另一个 View ,添加以下代码:

@IBAction func playButtonPressed(sender: AnyObject) {
mainMenuScene.playButtonPressed(sender)
}

关于ios - Swift - 一个屏幕到另一个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30990483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com