Ich weiß nicht, wie das Problem zu lösen: Es gibt eine Datenbank mit Feldern ist:eine Spalte in Realm auswählen und auf die Links klicken durch
import Foundation
import RealmSwift
import UIKit
class EventsDB: Object {
@objc dynamic var dataMonth = ""
@objc dynamic var dataDay = ""
@objc dynamic var desc = ""
@objc dynamic var link = ""
}
Der Link Spalte enthält Links zu einigen Veranstaltungen. Die SecondController Klasse hat eine showTutorial Funktion:
import Foundation
import UIKit
import RealmSwift
import SafariServices
class SecondController: UIViewController, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
var linkGive: String?
var dayForSearch: String?
var monthForSearch: String? {
didSet {
guard let monthForSearch = self.monthForSearch else {
return
}
self.realevents = (try! Realm()).objects(EventsDB.self).filter("dataMonth = '\(monthForSearch)' && dataDay = '\(dayForSearch ?? "0")")
}
}
func showTutorial(_ which: Int) {
if let url = URL(string: "\((try! Realm()).objects(EventsDB.self).filter("link"))") {
let config = SFSafariViewController.Configuration()
config.entersReaderIfAvailable = true
let vc = SFSafariViewController(url: url, configuration: config)
present(vc, animated: true)
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
var realevents: Results<EventsDB>?
}
extension SecondController: UITableViewDataSource{
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
showTutorial(indexPath.row)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return realevents?.count ?? 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
else {
return UITableViewCell()
}
let realevent = realevents?[indexPath.row]
cell.textLabel?.text = realevent?.desc
return cell
}
}
F: Wie kann ich den Link Spalte auswählen und die Anwendung auf die Links in dieser Spalte öffnen machen? (Was soll ich in die URL (in der showTutorial-Funktion) eingeben?)