2017-01-05 15 views
1

次のメソッドを使用して現在のviewControllerを取得しましたが、常にcurrentControllerとしてSWRevealViewControllerを返します。SWRevealViewController currentControllerの取得中に発生する問題

私はSWRevealViewControllerをスライドメニューの操作に使用しました。ここで

extension UIApplication { 
    class func topViewController(base: UIViewController) -> UIViewController?{ 
    if let nav = base as? UINavigationController { 
     return topViewController(nav.visibleViewController!) 
    } 
    if let tab = base as? UITabBarController { 
     if let selected = tab.selectedViewController { 
      return topViewController(selected) 
     } 
    } 
    if let presented = base.presentedViewController { 
     return topViewController(presented) 
    } 
    return base 
    } 
} 

が、私は現在のコントローラを取得しようとしています方法です:

let topVC = UIApplication.topViewController(((UIApplication.sharedApplication().delegate as! AppDelegate).window?.rootViewController)!) 
    print(topVC) 
    if topVC!.isKindOfClass(mycontroller) == false{ 
     //do something 
    }else{ 
    // do another thing 
    } 
} 

答えて

1

は、このような現在のビューコントローラを取得してみてください。

UIViewController *topController = self.window.rootViewController; 
    while (topController.presentedViewController) { 
    topController = topController.presentedViewController; 
} 
+0

私のコードを読んでください、私は中にいることを実施しています私のコード。 –

関連する問題