gpt4 book ai didi

swift - 使用未解析的标识符 'scene'

转载 作者:行者123 更新时间:2023-11-30 12:25:00 27 4
gpt4 key购买 nike

当发现“条形码”时,我尝试以编程方式更改场景,但我不断收到错误...

导入的模块:

import UIKit
import AVFoundation
import SpriteKit
import SceneKit

代码:

        if metadataObj.stringValue != nil {
messageLabel.text = "Found: " + metadataObj.stringValue
myBarcode = metadataObj.stringValue

let transition = SKTransition.reveal(with: .down, duration: 1.0)

let nextScene = WebLogger(size: scene!.size) *<-- use of unresolved identifier 'scene'
nextScene.scaleMode = .AspectFill

scene?.view?.presentScene(nextScene, transition: transition) *<-- use of unresolved identifier 'scene'
}

通过添加修复了问题 1

var scene = SKScene()

问题 2调用中的参数标签不正确(具有“大小:”,预期为“编码器:”)

var scene = SKScene()

if metadataObj.stringValue != nil {
messageLabel.text = "Found: " + metadataObj.stringValue
myBarcode = metadataObj.stringValue

let transition = SKTransition.reveal(with: .down, duration: 1.0)

let nextScene = WebLogger(size: scene!.size) *<-- Incorrect argument label in call (have 'size:', expected 'coder:')
nextScene.scaleMode = .AspectFill

scene?.view?.presentScene(nextScene, transition: transition)
}

最佳答案

好的。我认为您可能需要稍微回溯一下当前的设置。

您应该搜索教程的关键字/关键技术是:

  • Storyboard:这是您定义/设计应用流程的地方,您似乎已经有了。
  • UIViewController:在 Storyboard中,您可以定义各种 View Controller ,您可以将它们连接起来以表示应用中的 UIViewControllers
  • segue:segue 是您在 Storyboard 中的 UIViewControllers 之间导航的方式。您可以连接转场,以便它们在您点击按钮时自动发生,或者您可以从代码中手动调用转场(这可能就是您所需要的情况)。

一个简单的例子。

我创建了一个包含两个 UIViewController(FirstViewController 和 SecondViewController)的项目。

Project Structure

在它们之间我添加了一个UIStoryboardSegue,如您所见。为此,请按住 ctrl 键,然后从第一个 UIViewController 上方的黄色框(如下图所示)拖动到第二个 UIViewController 上的任意位置,然后选择您的演示文稿风格。

Drag from this bad boy

请记住为您的 Segue 提供一个标识符,我们稍后会需要它。为此,请选择 Segue 并查看屏幕右侧。

Identifier is important

最后一步是调用 segue。我已将 IBAction 添加到 FirstViewController 中的按钮,如下所示:

@IBAction func navigateToPageTwo(_ sender: UIButton) {
performSegue(withIdentifier: "mySegue", sender: nil)
}

(请参阅...我告诉过您标识符很重要;))。

如果您这样做,那么您应该能够从一个 UIViewController 导航到另一个。

在您的情况下,您应该在 QRScannerControllerWebLogger 之间添加一个 segue,然后执行以下操作:

if metadataObj.stringValue != nil {
messageLabel.text = "Found: " + metadataObj.stringValue
myBarcode = metadataObj.stringValue

performSegue(withIdentifier: "nameOfYourSegue", sender: nil)
}

如果您需要在两个 UIViewControllers 之间传递数据,您应该查看方法 prepare(for segue: UIStoryboardSegue, sender: Any?) (看看this question and answer 例如)

希望能为您提供一些有用的东西。

关于swift - 使用未解析的标识符 'scene',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44326991/

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