[英]Connecting Objects with two View controllers in Swift
在我的项目中,我有两个视图控制器,但无法将UIImageView等对象连接到视图控制器。 当我尝试创建IBOutlet时,它告诉我“无法插入新的插座集合:找不到名为UIViewController的类的任何信息”。 我相信这个问题源于我对班级的原始声明如下:
class UIViewController: UIViewController {
实际上,视图控制器改为名为mainScene。 但是,当我将第一个UIViewController更改为我认为应该的样子(mainScene)时,它甚至没有向我显示连接IBOutlet的选项。
class mainScene: UIViewController {
所以,我有两个问题。
我是否需要为第二个UIViewController提供一个单独的类,这是否可以解决我的问题?
是否有更好的方法将对象链接到UIViewController或我只是在做一些可怕的错误(可能的情况)?
非常感谢
简短答案:1.是,是。 2.没有更好的方法,并且您没有做错什么。 (您可能只错过了一步。)
您有两个视图控制器。 假设它们不同,则可以使用不同的名称从UIViewController
每个子类。 例如,mainSceneViewController和otherSceneViewController。
您的mainSceneViewController和otherSceneViewController将各自具有自己的属性和IBOutlet。
可能会卡住的地方,需要在Interface Builder中更改viewController的类以使其.swift文件中的类名匹配,以便IB知道它可以为该视图控制器连接哪些插座。
故事板上的每个场景都对应一个视图控制器。 执行segue后,iOS将从情节提要中实例化视图控制器。
虽然可能只有一个视图控制器子类,并且对不同的视图使用相同的子类,但是这种情况并不太常见。
更新:
子类化使您可以向类添加属性和方法,并覆盖它们的超类。
在您的评论中, UIViewController
是类,而mainSceneViewController
是UIViewController
子类。 对于您的第二个视图控制器,它可能是class otherSceneViewController: UIViewController {
,因为您的其他场景可能需要与主场景视图控制器不同的属性和方法。
您可以在《 Swift编程语言》指南中阅读有关继承的更多信息 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.