나는 WebKit
with를 사용 하고 WKWebView
있으며 WKActionSheet
링크를 길게 누른 후 제시 되는 것을 가로 질러 시도하고 있습니다.
내 루트 뷰 컨트롤러에서 다음을 구현했습니다 present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)
.
override func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil) {
print("View controller to present: \(viewControllerToPresent)")
super.present(viewControllerToPresent, animated: flag, completion: completion)
}
링크를 길게 누르면 콘솔에서 관련 로그를 볼 수 있습니다.
View controller to present: <WKActionSheet: 0x13616b200>
내가 여부를 확인하기 위해 시도하거나이하지만 viewControllerToPresent
A는 WKActionSheet
, 나는이 오류 메시지를 받았습니다 :
Use of undeclared type WKActionSheet
그래서 내 생각 엔 ... 이것은 WKActionSheet
개인 API에 속합니까? 그 수업에 접근 할 방법이 없나요?
어떻게이 있는지 확인 할 수 viewControllerToPresent
A는 WKActionSheet
깨끗한 방법으로? 지금은 사용 viewControllerToPresent.description
하고 있으며 "WKActionSheet"문자열이 포함되어 있는지 확인합니다. 괜찮지 만 꽤 더럽습니다 ...
누구든지 관심이 있다면 여기 내 해결 방법이 있습니다.
override func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)
{
guard let alertController = viewControllerToPresent as? UIAlertController,
alertController.preferredStyle == .actionSheet, alertController.description.contains("WKActionSheet")
else {
super.present(viewControllerToPresent, animated: flag, completion: completion)
return
}
guard let longPressedLink = alertController.title
else {return}
// Here I call a custom method to create my own UIAlertController
let customAlertController = getCustomAlertControllerFromLink(link: longPressedLink)
super.present(customAlertController, animated: flag, completion: completion)
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다