在视图控制器中继承出口和操作

时间:2017-09-14 16:53:15

标签: ios swift uiviewcontroller

我创建了带有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中?以及如何访问它们?

1 个答案:

答案 0 :(得分:2)

  

所以问题是有没有办法在RoomViewController类中使用一组iboulet和ibactions并继承它们,例如在Room1ViewContoller中?

您在RoomViewController 中声明的@IBOutlet属性和@IBAction方法由子类(如Room1ViewController)继承。

继承的是nib中的设计。当您实例化像Room1ViewController这样的子类时,它会加载自己的视图,而不是其他视图控制器的视图。此加载基于每个实例进行。因此,您仍然需要将nib 中的接口对象连接到类声明中的属性和方法。换句话说,你仍然需要在笔尖中创建出口和动作,因为这是一个不同的观点。