使用未解析的标识符 'scene'
Use of unresolved identifier 'scene'
我试图在找到 'barcode' 时以编程方式更改场景,但我不断收到错误...
导入的模块:
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 期
调用中的参数标签不正确(有 'size:',预期 'coder:')
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)
}
好的。我认为您可能需要从当前设置中回溯一下。
您应该搜索有关教程的 keywords/key 技术是:
- 故事板:这是您 define/design 应用流程的地方,您似乎已经有了。
- UIViewController:在您的情节提要中,您定义了各种视图控制器,这些视图控制器在您的应用程序中代表
UIViewControllers
。
- segue:segue 是您在情节提要中的
UIViewControllers
之间导航的方式。你可以连接 segues,这样当你点击一个按钮时它们会自动发生,或者你可以从你的代码中手动调用 segues(这可能是你想要的)。
一个简单的例子。
我创建了一个包含两个 UIViewControllers
(FirstViewController 和 SecondViewController)的项目。
如您所见,我在它们之间添加了一个 UIStoryboardSegue
。为此,您按住 ctrl,然后从第一个 UIViewController
(如下图所示)上方的黄色框拖动到第二个 UIViewController
和 select 演示文稿样式的任意位置。
记得给你的 segue 一个标识符,我们很快就会需要它。为此,select 继续并查看屏幕右侧。
最后一步是调用 segue。我在我的 FirstViewController 中的按钮中添加了一个 IBAction
,如下所示:
@IBAction func navigateToPageTwo(_ sender: UIButton) {
performSegue(withIdentifier: "mySegue", sender: nil)
}
(看...我告诉过你标识符很重要;))。
如果这样做,那么您应该能够从一个 UIViewController
导航到另一个。
在你的情况下,你应该在你的 QRScannerController
和你的 WebLogger
之间添加一个 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?)
(例如看看 )
希望这能给您一些有用的东西。
我试图在找到 'barcode' 时以编程方式更改场景,但我不断收到错误...
导入的模块:
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'
}
通过添加
修复了问题 1var scene = SKScene()
第 2 期 调用中的参数标签不正确(有 'size:',预期 'coder:')
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)
}
好的。我认为您可能需要从当前设置中回溯一下。
您应该搜索有关教程的 keywords/key 技术是:
- 故事板:这是您 define/design 应用流程的地方,您似乎已经有了。
- UIViewController:在您的情节提要中,您定义了各种视图控制器,这些视图控制器在您的应用程序中代表
UIViewControllers
。 - segue:segue 是您在情节提要中的
UIViewControllers
之间导航的方式。你可以连接 segues,这样当你点击一个按钮时它们会自动发生,或者你可以从你的代码中手动调用 segues(这可能是你想要的)。
一个简单的例子。
我创建了一个包含两个 UIViewControllers
(FirstViewController 和 SecondViewController)的项目。
如您所见,我在它们之间添加了一个 UIStoryboardSegue
。为此,您按住 ctrl,然后从第一个 UIViewController
(如下图所示)上方的黄色框拖动到第二个 UIViewController
和 select 演示文稿样式的任意位置。
记得给你的 segue 一个标识符,我们很快就会需要它。为此,select 继续并查看屏幕右侧。
最后一步是调用 segue。我在我的 FirstViewController 中的按钮中添加了一个 IBAction
,如下所示:
@IBAction func navigateToPageTwo(_ sender: UIButton) {
performSegue(withIdentifier: "mySegue", sender: nil)
}
(看...我告诉过你标识符很重要;))。
如果这样做,那么您应该能够从一个 UIViewController
导航到另一个。
在你的情况下,你应该在你的 QRScannerController
和你的 WebLogger
之间添加一个 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?)
(例如看看
希望这能给您一些有用的东西。