-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBookDetailViewController.swift
64 lines (52 loc) · 1.86 KB
/
BookDetailViewController.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//
// BookDetailViewController.swift
// SwiftLibrary
//
// Created by 劉瑞元 on 2022/5/17.
//
import UIKit
import SafariServices
class BookDetailViewController: UIViewController {
@IBOutlet weak var titleLable: UILabel!
@IBOutlet weak var authorLable: UILabel!
@IBOutlet weak var publishDateLable: UILabel!
@IBOutlet weak var descriptionLable: UITextView!
@IBOutlet weak var thumbnailImage: UIImageView!
@IBOutlet weak var viewInfoPageButton: UIButton!
var selectedBook: Book? = nil
override func viewDidLoad() {
guard
let book = selectedBook
else {
fatalError("Couldn't find selected book property.")
}
if let url = URL(string: book.imageUri!) {
UIImage.loadFrom(url: url) { image in
self.thumbnailImage.image = image
}
}
titleLable.text = book.title
authorLable.text = book.author
publishDateLable.text = book.publishDate
descriptionLable.text = book.desc
self.navigationItem.title = book.title
// Check if selected book has descUri
if book.descUri != nil && book.desc?.isEmpty == false {
viewInfoPageButton.isEnabled = true
} else {
viewInfoPageButton.isEnabled = false
}
}
@IBAction func onClickCancelButton(sender: AnyObject) {
self.dismiss(animated: true, completion: nil)
}
@IBAction func onClickViewInfoPage(sender: AnyObject) {
guard
let url = URL(string: selectedBook!.descUri!)
else {
fatalError("Couldn't parse url to NSURL \(selectedBook!.descUri!)")
}
let safariViewController = SFSafariViewController(url: url)
self.present(safariViewController, animated: true, completion: nil)
}
}