Hallo,
Ich habe vor einen ViewController über eine Action aus einer UITableViewCell heraus zu öffnen. Nur leider will mir das nicht wirklich gelingen da soweit ich weiß, nicht wie im ViewController bestimmte Funktionen wie present zur Verfügung stehen. Ich habe daraufhin etwas über protocols gelesen und es versucht über diese zu lösen. Leider kriege ich aber immer folgende Fehlermeldung:
Cannot assign value of type 'ProfileTableViewController' to type 'showSettingsProtocol?'. Es ist wohl irgendein Problem mit den Optionals aber wie komme ich um diese Meldung herum ? Bzw. ist die Methode die ich vorhabe überhaupt am sinnvollsten oder gibt es eventuell noch einen einfachern Weg ?
Hier der relevante Code:
Alles anzeigen
und noch die TableView:
Alles anzeigen
Ich habe vor einen ViewController über eine Action aus einer UITableViewCell heraus zu öffnen. Nur leider will mir das nicht wirklich gelingen da soweit ich weiß, nicht wie im ViewController bestimmte Funktionen wie present zur Verfügung stehen. Ich habe daraufhin etwas über protocols gelesen und es versucht über diese zu lösen. Leider kriege ich aber immer folgende Fehlermeldung:
Cannot assign value of type 'ProfileTableViewController' to type 'showSettingsProtocol?'. Es ist wohl irgendein Problem mit den Optionals aber wie komme ich um diese Meldung herum ? Bzw. ist die Methode die ich vorhabe überhaupt am sinnvollsten oder gibt es eventuell noch einen einfachern Weg ?
Hier der relevante Code:
Quellcode
- import UIKit
- protocol showSettingsProtocol {
- func showSettings()
- }
- class ProfileImageTableViewCell: UITableViewCell {
- @IBOutlet weak var profileImage: UIImageView!
- @IBOutlet weak var profileSettingsButton: UIButton!
- var delegate: showSettingsProtocol?
- @IBAction func settingsButtonTapped(_ sender: Any) {
- if profileSettingsButton.currentTitle == "Settings" {
- self.delegate?.showSettings()
- } else {
- }
- }
- }
und noch die TableView:
Quellcode
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- if indexPath.section == 0 {
- let cell = tableView.dequeueReusableCell(withIdentifier: "UserLine", for: indexPath) as! ProfileImageTableViewCell
- cell.delegate = self
- [...]
- }
- func showSettings(){
- if let destinationViewController = storyboard?.instantiateViewController(withIdentifier: "settingsController") as? SettingsViewController {
- // Present Second View
- present(destinationViewController, animated: true, completion: nil)
- }
- }