我创建了带有5个标签的TabBar App,所有5个视图都是相同的,每个视图包括用于控制一组设备的按钮,将输入切换到接收器和控制音量的输出,因此5个视图对应于5个房间。
现在我有5个不同的UIViewCOntrollers
代码相同,继承自UIViewController
。
但我觉得它应该是一个RoomViewController,来自UIViewController
,并且每个房间都使用RoomViewCOntroller shold,就像这样
class RoomViewController: UIViewController {
@IBOutlet weak var videoSat: UIButton!
func lockAudioLabel(sender: UIButton) {
if sender.isSelected {
return
}
videoSat.isSelected = false
}
@IBAction func videoSatSelect(_ sender: UIButton) {
//send command to equipment
//make some actions
lockVideoLabel(sender: sender)
}
}
Room1ViewController是
class Room1ViewController: RoomViewController {
}
所有房间都有故事板中的场景
所以问题是有没有办法在RoomViewController类中使用一组iboulet和ibactions并继承它们,例如在Room1ViewContoller中?以及如何访问它们?
答案 0 :(得分:2)
所以问题是有没有办法在RoomViewController类中使用一组iboulet和ibactions并继承它们,例如在Room1ViewContoller中?
您在RoomViewController 中声明的@IBOutlet
属性和@IBAction
方法由子类(如Room1ViewController)继承。
但不继承的是nib中的设计。当您实例化像Room1ViewController这样的子类时,它会加载自己的视图,而不是其他视图控制器的视图。此加载基于每个实例进行。因此,您仍然需要将nib 中的接口对象连接到类声明中的属性和方法。换句话说,你仍然需要在笔尖中创建出口和动作,因为这是一个不同的观点。