WebView가 포함 된보기가 있습니다. 해당 웹보기의 링크를 클릭하고 링크가 내가 사용하는 URL의 동일한 도메인에 있지 않으면 다른보기가 열립니다 보기에 다른 webview가 포함되어 있고 해당 URL을 전달합니다.보기에서 다른보기로 변수를 전달합니다.
여기 내 첫 번째보기
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
var url = "http://someurl"
override func viewDidLoad() {
super.viewDidLoad()
webView.delegate = self
let requestURL = NSURL(string:url)
let request = NSURLRequest(URL: requestURL!)
webView.loadRequest(request)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func webViewDidStartLoad(webView : UIWebView) {
//UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}
func webViewDidFinishLoad(webView : UIWebView) {
}
func webView(webView: UIWebView, shouldStartLoadWithRequest r: NSURLRequest, navigationType nt: UIWebViewNavigationType) -> Bool {
var url = webView.request?.URL.absoluteString
if nt == UIWebViewNavigationType.LinkClicked {
self.switchScreen(r)
return false
}
return true
}
func switchScreen(url: NSURLRequest) {
let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("innerBrowser") as UIViewController
vc.url = url
self.presentViewController(vc, animated: true, completion: nil)
}
}
다음 두 번째보기 내가 그것을 잘 작동 두 번째보기에서 URL을 설정
import UIKit
class InnerBrowserController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var innerBrowserView: UIWebView!
var url:NSURLRequest?
override func viewDidLoad() {
super.viewDidLoad()
//let requestURL = NSURL(string:url!)
//let request = NSURLRequest(URL: requestURL!)
self.innerBrowserView.loadRequest(url!)
}
}
.
실제로 붙어있는 곳은 어디입니까? 새 viewController를 표시 할 때 [vc loadRequest : r]과 같은 두 번째 viewController 메서드를 실행하는 것이 간단하지 않습니까? – Injectios
vc는 loadRequest ..가 없습니다. – animake
다른 URL로보기에서 URL을 전달하는 데 막혔습니다 – animake