Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 斯威夫特,我如何在情节提要中将两个类连接到一个场景?_Ios_Swift - Fatal编程技术网

Ios 斯威夫特,我如何在情节提要中将两个类连接到一个场景?

Ios 斯威夫特,我如何在情节提要中将两个类连接到一个场景?,ios,swift,Ios,Swift,我有两个类,MainViewController和ButtonHandler。我希望能够处理mainViewController中的大部分UI和控件。但是由于应用程序将有很多按钮,我希望创建一个ButtonHandler类,这样我就可以从MainViewController中抽象UI的按钮方面。按钮处理程序将包括许多按钮,并在单击按钮时处理要执行的操作 问题在于,我还希望能够在MainViewController类中添加1个按钮或2个按钮。因此,如果在视图/场景中设置MainViewContro

我有两个类,MainViewController和ButtonHandler。我希望能够处理mainViewController中的大部分UI和控件。但是由于应用程序将有很多按钮,我希望创建一个ButtonHandler类,这样我就可以从MainViewController中抽象UI的按钮方面。按钮处理程序将包括许多按钮,并在单击按钮时处理要执行的操作

问题在于,我还希望能够在MainViewController类中添加1个按钮或2个按钮。因此,如果在视图/场景中设置MainViewController类,那么我可以向MainViewController添加按钮,但不能向ButtonHandler添加按钮,反之亦然

如果ButtonHandler类继承了MainViewController类,那么我可以向这两个类添加按钮,这正是我想要的。但还有别的办法吗?我认为继承不会真正显示这两个类之间的正确关系


有没有一种方法可以将2个类连接/设置为故事板中的1个场景/视图?

假设您的
按钮处理程序看起来像这样:

class ButtonHandler: NSObject {
    @IBOutlet weak var button: UIButton!

    override init() {
        super.init()
    }

    @IBAction func buttonTapped(sender: AnyObject) {
        print("button tapped")
    }
}
在情节提要中,搜索“对象”组件面板(屏幕右下角):

将该组件拖动到场景面板(故事板左侧)。从“场景”面板中选择对象,并在右上面板中更改对象的类别:

现在,您可以将按钮插座连接到
按钮手柄
的插座

您还可以在
UIViewController
中创建一个到
ButtonHandler
的出口,并从代码访问该处理程序。

您可以从对象调色板向场景中添加一个通用“对象”,并将其类设置为
ButtonHandler
。如果自定义是特定于按钮的,那么您也可以将
UIButton
子类化,并在场景中使用这些按钮子类。