Last active
December 30, 2016 11:07
-
-
Save g001613001/22619894c7d559f76f32d54e49a205a0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | |
switch segue.identifier ?? "" { | |
//FIXME: 這裡有問題 可能是這邊造成retain cycle | |
case "Web": | |
if let indexPath = sender as? IndexPath { | |
let row = indexPath.row | |
if row == 0 { | |
guard let nav = segue.destination as? UINavigationController, let vc = nav.topViewController as? WebVController else { return } | |
vc.urlString = "http://www.kff.tw" | |
vc.navigationItem.title = "高雄電影節" | |
} | |
if row == 1 { | |
guard let nav = segue.destination as? UINavigationController, let vc = nav.topViewController as? WebVController else { return } | |
vc.urlString = "http://kfa.kcg.gov.tw/mobile/index.php" | |
vc.navigationItem.title = "高雄市電影館" | |
} | |
} | |
if let banner = sender as? Banner { | |
guard let nav = segue.destination as? UINavigationController, let vc = nav.topViewController as? WebVController else { return } | |
vc.urlString = banner.Url | |
if banner.PromoBannerName != "" { | |
vc.title = banner.PromoBannerName | |
} | |
} | |
default: () | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
class WebVController: UIViewController { | |
@IBOutlet weak var webView: UIWebView! | |
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView! | |
var urlString: String? = nil | |
// MARK: - Private var | |
let iPad = UIDevice.current.userInterfaceIdiom == .pad | |
// MARK: - UIViewController | |
override var supportedInterfaceOrientations : UIInterfaceOrientationMask { | |
if iPad { | |
return .all | |
} else { | |
return .portrait | |
} | |
} | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
if (urlString ?? "") != "" { | |
if let _urlString = urlString { | |
let url = URL (string: _urlString) | |
let request = URLRequest(url: url!) | |
webView.loadRequest(request) | |
} | |
} else { | |
activityIndicatorView.isHidden = true | |
view.addToBeSuppliedView() | |
} | |
} | |
deinit { | |
urlString = nil | |
print("WebVC deinit.") | |
} | |
fileprivate func checkCanBack() { | |
navigationItem.leftBarButtonItem?.isEnabled = webView.canGoBack | |
} | |
@IBAction func btnDismissTapped(_ sender: AnyObject) { | |
//FIXME: 有問題 解散後還是被持有 | |
dismiss(animated: true, completion: nil) | |
} | |
} | |
// MARK: - UIWebViewDelegate | |
extension WebVController: UIWebViewDelegate { | |
func webViewDidStartLoad(_ webView: UIWebView) { | |
activityIndicatorView.isHidden = false | |
checkCanBack() | |
} | |
func webViewDidFinishLoad(_ webView: UIWebView) { | |
delay(1) { | |
self.activityIndicatorView.isHidden = true | |
} | |
checkCanBack() | |
} | |
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) { | |
activityIndicatorView.isHidden = true | |
if (urlString ?? "") != "" { | |
webView.addToBeSuppliedView(forText: "無法載入網頁") | |
} else { | |
checkCanBack() | |
} | |
} | |
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { | |
return true | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment