조앤의 기술블로그
[뉴스리더] 뉴스 상세보기 구현 (웹뷰, 뷰컨트롤러 간 데이터 전달하기, iOS) 본문
뉴스 피드 화면은 FeedListViewController.swift 파일에서 구현되었다.
파싱된 요소들이 각 피드에 출력된다.
여기서 특정 피드를 클릭하면 새로운 화면으로 이동하여 뉴스 상세보기 화면을 웹뷰로 나타내주는 기능을 구현해보도록 하겠다.
뉴스 상세보기 화면(웹뷰)는 FeedWebViewController.swift 파일에서 구현한다.
[FeedWebViewController.swift]
import UIKit
import WebKit
class FeedWebViewController: UIViewController {
var newsLink: String? // 이전 화면에서 전달한 뉴스 링크
@IBOutlet var newsWeb: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: newsLink!)
let request = URLRequest(url: url!)
newsWeb.load(request)
}
}
전달받은 링크를 웹뷰에 나타내는 코드이다.
[FeedListViewController.swift]
class FeedListViewController: UITableViewController, XMLParserDelegate {
////.....
//웹 뷰 화면으로 뉴스링크 전달하기
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let cell = sender as? UITableViewCell, let indexPath = tableView.indexPath(for: cell){
if let vc = segue.destination as? FeedWebViewController {
vc.newsLink = (myFeed.object(at: indexPath.row) as AnyObject).object(forKey: "link") as? String
}
}
}
/////.....
}
뉴스 피드를 나타내는 FeedListViewController.swift 파일에서 xml에서 파싱한 뉴스의 링크를 FeedWebViewController.swift 파일에 전달하는 코드이다. prepare 메소드를 사용하였다.
'꼼꼼한 재은씨의 Swift 프로그래밍 (기본편)' 예제를 참고하였다.
'Programming > 프로젝트' 카테고리의 다른 글
개발결과 - 포트폴리오 (0) | 2020.04.17 |
---|---|
[뉴스리더] 구글 뉴스 RSS xml 파싱하기(iOS, Swift) (0) | 2020.04.07 |
[뉴스리더] RSS 구독 앱 기획하기 (0) | 2020.03.17 |
[북스북스] 뷰 컨트롤러 구현, 기본 틀 잡기 (0) | 2020.03.13 |
[북스북스] 앱 기획 (0) | 2020.03.11 |