@@ -173,25 +173,39 @@ public class SBUMain: NSObject {
173
173
public static func openChannel( channelUrl: String , basedOnChannelList: Bool = true ) {
174
174
guard SBUGlobals . CurrentUser != nil else { return }
175
175
176
- let rootViewController = UIApplication . shared. keyWindow? . rootViewController
176
+ var rootViewController = UIApplication . shared. keyWindow? . rootViewController
177
177
var viewController : UIViewController ? = nil
178
178
179
+ if let tabbarController: UITabBarController = rootViewController as? UITabBarController {
180
+ rootViewController = tabbarController. selectedViewController
181
+ }
182
+
179
183
if let navigationController: UINavigationController = rootViewController? . presentedViewController as? UINavigationController {
180
184
for subViewController in navigationController. viewControllers {
181
- if subViewController is SBUChannelListViewController {
185
+ if let subViewController = subViewController as? SBUChannelListViewController {
186
+ navigationController. popToViewController ( subViewController, animated: false )
187
+ viewController = subViewController
188
+ break
189
+ } else if let subViewController = subViewController as? SBUChannelViewController {
190
+ viewController = subViewController
191
+ }
192
+ }
193
+ } else if let navigationController: UINavigationController = rootViewController as? UINavigationController {
194
+ for subViewController in navigationController. viewControllers {
195
+ if let subViewController = subViewController as? SBUChannelListViewController {
182
196
navigationController. popToViewController ( subViewController, animated: false )
183
- viewController = subViewController as! SBUChannelListViewController
197
+ viewController = subViewController
184
198
break
185
- } else if subViewController is SBUChannelViewController {
186
- viewController = subViewController as! SBUChannelViewController
199
+ } else if let subViewController = subViewController as? SBUChannelViewController {
200
+ viewController = subViewController
187
201
}
188
202
}
189
203
}
190
204
191
- if viewController is SBUChannelListViewController {
192
- ( viewController as! SBUChannelListViewController ) . showChannel ( channelUrl: channelUrl)
193
- } else if viewController is SBUChannelViewController {
194
- ( viewController as! SBUChannelViewController ) . loadChannel ( channelUrl: channelUrl)
205
+ if let viewController = viewController as? SBUChannelListViewController {
206
+ viewController. showChannel ( channelUrl: channelUrl)
207
+ } else if let viewController = viewController as? SBUChannelViewController {
208
+ viewController. loadChannel ( channelUrl: channelUrl)
195
209
} else {
196
210
if basedOnChannelList == true {
197
211
// If based on channelList
0 commit comments