@@ -52,15 +52,7 @@ class BlinkyViewController: UITableViewController, CBCentralManagerDelegate {
52
52
}
53
53
}
54
54
55
- //MARK: - UITableViewDelegate
56
- override func tableView( _ tableView: UITableView , shouldHighlightRowAt indexPath: IndexPath ) -> Bool {
57
- return false
58
- }
59
-
60
- //MARK: - UIViewController
61
- override func viewWillAppear( _ animated: Bool ) {
62
- super. viewWillAppear ( animated)
63
-
55
+ private func setupDependencies( ) {
64
56
//This will run on iOS 10 or above
65
57
//and will generate a tap feedback when the button is tapped on the Dev kit.
66
58
prepareHaptics ( )
@@ -70,7 +62,7 @@ class BlinkyViewController: UITableViewController, CBCentralManagerDelegate {
70
62
buttonStateLabel. text = " Reading ... "
71
63
ledStateLabel. text = " Reading ... "
72
64
ledToggleSwitch. isEnabled = false
73
-
65
+
74
66
print ( " Adding button notification and LED write callback handlers " )
75
67
blinkyPeripheral. setButtonCallback { ( isPressed) -> ( Void ) in
76
68
DispatchQueue . main. async {
@@ -88,7 +80,7 @@ class BlinkyViewController: UITableViewController, CBCentralManagerDelegate {
88
80
if !self . ledToggleSwitch. isEnabled {
89
81
self . ledToggleSwitch. isEnabled = true
90
82
}
91
-
83
+
92
84
if isOn {
93
85
self . ledStateLabel. text = " ON "
94
86
if self . ledToggleSwitch. isOn == false {
@@ -103,18 +95,33 @@ class BlinkyViewController: UITableViewController, CBCentralManagerDelegate {
103
95
}
104
96
}
105
97
}
98
+ //MARK: - UITableViewDelegate
99
+ override func tableView( _ tableView: UITableView , shouldHighlightRowAt indexPath: IndexPath ) -> Bool {
100
+ return false
101
+ }
102
+
103
+ //MARK: - UIViewController
104
+ override func viewWillAppear( _ animated: Bool ) {
105
+ super. viewWillAppear ( animated)
106
+ guard blinkyPeripheral. basePeripheral. state != . connected else {
107
+ //View is coming back from a swipe, everything is already setup
108
+ return
109
+ }
110
+ //This is the first time view appears, setup the subviews and dependencies
111
+ setupDependencies ( )
112
+ }
106
113
107
- override func viewWillDisappear ( _ animated: Bool ) {
114
+ override func viewDidDisappear ( _ animated: Bool ) {
108
115
print ( " Removing button notification and LED write callback handlers " )
109
116
blinkyPeripheral. removeLEDCallback ( )
110
117
blinkyPeripheral. removeButtonCallback ( )
111
118
112
119
if blinkyPeripheral. basePeripheral. state == . connected {
113
120
centralManager. cancelPeripheralConnection ( blinkyPeripheral. basePeripheral)
114
121
}
115
-
116
- super. viewWillDisappear ( animated)
122
+ super. viewDidDisappear ( animated)
117
123
}
124
+
118
125
//MARK: - CBCentralManagerDelegate
119
126
func centralManagerDidUpdateState( _ central: CBCentralManager ) {
120
127
if central. state != . poweredOn {
0 commit comments