2017-11-28 18 views
1

셀을 누른 후에 URL을 시작하는 tableView가 있습니다. 거기에 닫기 버튼을 만들View Controller에서 WebView 제거하기

var webView = UIWebView(frame: self.view.bounds) 
webView.scalesPageToFit = true 
view.addSubview(webView) 
let request = URLRequest(url: catPictureURL!) 
webView.loadRequest(request) 
webViewDidStartLoad(webView) 

그리고 기능을 가지고 : 나는 그것을 위해 웹보기를 만드는 오전

func webViewDidStartLoad(_ webView: UIWebView){ 
    print("JUHUUU") 
    var subView = UIView() 
    subView.frame.size.height = 10 
    subView.frame.size.width = 10 
    subView.frame = CGRect(x: 0, y: 50, width: 100 , height: 100) 
    let button = UIButton(type: .system) 
    button.frame = CGRect(x: 0, y: 50, width: 100, height: 100) 
    button.backgroundColor = UIColor.red 
    button.setTitle("CANCEL", for: []) 
    button.addTarget(self, action: #selector(webView.removeFromSuperview), for: UIControlEvents.touchUpInside) 
    self.view.addSubview(button) 
    webView.addSubview(subView) 
    //subView.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: "dismiss") 
} 

나는 웹보기를 닫고 이전 화면으로 보여 button.addTarget에 노력했다, 하지만

action: #selector(webView.removeFromSuperview) 

rootView를 제거하고 -하지 webView (일으키는 충돌). 나는 정말로 어떻게 webView을 닫을 지 모른다. PS. 또한 #selector("dismiss")을 시도하고 self.dismiss으로 함수를 준비했지만 결과는 같습니다.

답변

0

당신의 행동 목표는 자기 (귀하의 VC)입니다. 대상을 webView로 설정하십시오.

+0

무엇을 의미합니까? #selector (webView.removeFromSuperview)를 사용해 보았습니다. #selector ("dismiss")를 사용하면 함수 내부에서 webView를 참조 할 수 없습니다. – misi06

+0

@ misi06 "button.addTarget (self .."에서 webView로 "self"를 바꾸는 것을 의미합니다. 작업 대상은 컨트롤러가 아닌 webView 여야합니다. –

+0

감사합니다. 작동하는 버튼입니다. 여기에 버튼으로 자체 참조됩니다. 내 실수. – misi06

0

Self를 닫으려면 WebView로 변경해야합니다.

button.addTarget(webView, action: #selector(webView.removeFromSuperview), for: UIControlEvents.touchUpInside)