Ios 在Swift中使用两个视图控制器连接对象

Ios 在Swift中使用两个视图控制器连接对象,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,在我的项目中,我有两个视图控制器,在将UIImageView等对象连接到视图控制器时遇到问题。当我尝试创建IBOutlet时,它告诉我“无法插入新的outlet集合:找不到名为UIViewController的类的任何信息”。我相信这个问题源于我的班级声明如下: class UIViewController: UIViewController { 实际上,视图控制器名为Main Scene。然而,当我将第一个UIViewController更改为我认为应该的(mainScene)时,它

在我的项目中,我有两个视图控制器,在将UIImageView等对象连接到视图控制器时遇到问题。当我尝试创建IBOutlet时,它告诉我“无法插入新的outlet集合:找不到名为UIViewController的类的任何信息”。我相信这个问题源于我的班级声明如下:

    class UIViewController: UIViewController {
实际上,视图控制器名为Main Scene。然而,当我将第一个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
    中派生的子类。对于第二个视图控制器,它可能是
    类otherSceneViewController:UIViewController{
    ,因为其他场景可能需要与主场景视图控制器不同的属性和方法


    您可以在《Swift编程语言指南》中找到。

    我应该如何像您提到的那样对其进行子类化?我应该使用两个不同的.Swift文件,然后从类mainSceneViewController:UIVIewController开始每个文件{是的,您将有两个不同的.Swift文件,每个文件都有不同的“场景”名称。例如GameOverViewController.swift将以
    类GameOverViewController:UIViewController{
    开头。非常感谢您的帮助