我有一个委托/初始化问题,我似乎无法解决。基本上我有一个有几个视图控制器的故事板。在故事板里面有这个“视图控制器”,它由一个UITableview组成,它与一个DeviceListViewController类连接,以便它填充信息。在这里我已经宣布了以下协议:斯威夫特班上的代表团
protocol DeviceListViewControllerDelegate: UIAlertViewDelegate {
var connectionMode:ConnectionMode { get }
func connectPeripheral(peripheral:CBPeripheral, mode:ConnectionMode)
func stopScan()
func startScan()
}
和类本身里面我有一个这样的init方法(这可能是错误的,但我不知道我能在这一点上做些什么):
convenience init(aDelegate: DeviceListViewControllerDelegate) {
self.init()
self.delegate = aDelegate
}
然后有第二个类没有附加到任何称为BLEMainViewController的视图控制器。它应该是一个处理所有蓝牙操作的单身人士。这意味着我应该能够委托DevicelistViewController和BLEMainViewController之间的一些东西。
在BLEMainViewController我继承了DeviceListViewControllerDelegate:
class BLEMainViewController: NSObject, DeviceListViewControllerDelegate {
var deviceListViewController:DeviceListViewController!
var delegate: BLEMainViewControllerDelegate?
static let sharedInstance = BLEMainViewController()
}
override init() {
super.init()
// deviceListViewController.delegate = self
deviceListViewController = DeviceListViewController(aDelegate: self)
}
的问题是,BLEMainViewController没有连接到任何视图控制器(和它不应该IMO),但它需要被初始化为一个单为了处理所有BLE行为。任何人都可以指出我正确的方向(最好有一个例子)如何解决这个问题?
那么你为什么做它一个视图控制器? – Wain
嗯,我需要这样做才能显示警报等,但我只是觉得这实际上很愚蠢:/ – Reshad
我现在做了一个普通的类。 – Reshad