2016-11-21 10 views
1

내가 엑스 코드 7을 사용할 때의 ViewController 최고 응용 프로그램에 내가는 TopViewController 엑스 코드에의 ViewController 발표에 눌러 수 없습니다 8.1, iphone6s/기가 +/7/7 +

let nextStoryBoard = UIStoryboard(name: "Menu", bundle: nil) 
let menu = nextStoryBoard.instantiateViewControllerWithIdentifier("MenuView") as! MenuPanelViewController 

UIApplication.sharedApplication().keyWindow?.rootViewController!.getTopViewController().modalPresentationStyle = .FullScreen 

UIApplication.sharedApplication().keyWindow?.rootViewController!.getTopViewController().presentViewController(menu, animated: false, completion: nil) 

모든 미세 아래의 코드를 사용하여 제시합니다 , xCode를 8.1로 업데이트하면 iPhone 6s/6s +/7/7 +에서 tapRecognizer를 사용할 수 없습니다.

내 문제는 3D 터치와 관련이 있다고 생각합니다.

답변

0

getTopViewontroller()가 올바르게 반환되는지 확인하십시오.

이것은 가장 많이 표시된보기 컨트롤러를 찾는 데 사용하는 방법입니다.

extension UIApplication { 
    class func topViewController() -> UIViewController { 
     return UIApplication.topViewController(base: nil) 
    } 
    class func topViewController(base: UIViewController?) -> UIViewController { 
     var baseView = base 
     if baseView == nil { 
      baseView = (UIApplication.shared.delegate as? AppDelegate)?.window?.rootViewController 
     } 
     if let vc = baseView?.presentedViewController { 
      return UIApplication.topViewController(base: vc) 
     } else { 
      return baseView! 
     } 
    } 
}