tableview 에 리스트는 입력했는데, 내용을 뷰를 따로 사용하기 위한 방법은 아래와 같다.
일단 뷰를 만들고 storyboard의 identity inspector 설정에서 identifier를 지정한다.
여기서는 예제코드를 활용해서 SwiftViewController가 지정되어 있었고, 난 webView 를 add해 사용할 것이라 webViewController로 let 했다.
그리고 self.setNavigationBarItem()를 사용해 SwiftViewController에 네비게이션 아이템을 사용해서 webView가 가려버리는 문제를 해결하기 위해 Constrain을 쓰려고 했다. 그러나 한나절을 소모해도 해결할 수 없어, uiWebView.center 를 이용해 중심점을 이동시켰다.(꼼수)
아무튼 처음부터 webView를 생성하지 않으면, 우측에서 trasition 되는 뷰에 가리고 제어가 되지 않아, 갖은 수를 써서 구현했다.
게다가 블로그 RSS에 저장된 link 태그에 탭과 뉴라인 백슬래시 태그가 들어가 있어, 웹뷰 로딩시 에러가 발생했다. str replace로 없애버렸다.
해당 버그는 버퍼 오버플로우 공격이 가능해 보인다. 암튼 테이블 뷰에서 다른 뷰에 내용 전달하기는 하루나 걸렸다.
override func viewDidLoad() {
var storyboard = UIStoryboard(name: "Main", bundle: nil)
let webViewController = storyboard.instantiateViewControllerWithIdentifier("SwiftViewController") as!SwiftViewController
self.webViewController = UINavigationController(rootViewController: webViewController)
var uiWebView = UIWebView(frame: view.bounds)
webViewController.view.addSubview(uiWebView)
self.uiWebView = uiWebView
uiWebView.setTranslatesAutoresizingMaskIntoConstraints(false)
uiWebView.center = CGPointMake(view.bounds.midX, view.bounds.midY+60)
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let menu = indexPath.row
self.slideMenuController()?.changeMainViewController(self.webViewController, close: true)
var str : String = (posts.objectAtIndex(indexPath.row).valueForKey("link") as AnyObject? as? String)!
let modified = str.replace("nttttt", withString:"")
let url = NSURL(string: modified)
let request = NSURLRequest(URL: url!)
self.uiWebView.loadRequest(request)
}
댓글 달기