2016-05-13 20 views
-1

In meiner App gibt es eine TableView mit fünf Abschnitten. Der Kopftitel für den fünften Abschnitt lautet "Notizen" und der Text der Zelle lautet "Klicken Sie hier, um Notizen hinzuzufügen". Nach einem Klick auf die Zelle wechselt die App zu einem anderen View-Controller mit einem textView. Um es benutzerfreundlicher zu machen, möchte ich, wenn Benutzer irgendwo unterhalb des Header-Titels klicken (gelber Bereich im Screenshot), kann die App zum textView wechseln. Wie auch immer, das zu tun? Mein Code:Wie führe ich ein Segment aus, nachdem ich irgendwo in einen Bereich von TableView geklickt habe?

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    switch indexPath.section { 

// case 0 - 3 

    case 4: 

     self.performSegueWithIdentifier("toTextView", sender: self) 

    default: break 


    } 

} 

tableview image

+1

Ist nicht "unter dem Titel der Überschrift" die Zelle, die Sie bereits behandeln? Was genau fragst du? Welches Problem hast du? – rmaddy

+0

Hallo rmaddy, danke, dass du meine Frage noch einmal beantwortet hast. Ich meine jetzt müssen Benutzer auf die Zelle klicken. Wenn sie irgendwo anders unter der Zelle klicken, passiert nichts. Ich glaube nicht, dass das benutzerfreundlich ist. Ich möchte, dass Benutzer irgendwo unter diese Zelle klicken, es wird den Übergang ausführen. Das klingt vielleicht verrückt, aber trotzdem, um es zu tun? – newdeveloper

+0

Was meinst du mit "unter der Zelle"? Ist dort nicht noch eine Zelle? – rmaddy

Antwort

0

In Ihrer didSelectRowAtIndexPath() Funktion, würden Sie wollen, dass die ausgewählte Zeile der Abschnitt zu überprüfen, bevor beliebigen Code auszuführen. Ich habe eine Beispielbedingung hinzugefügt, die innerhalb Ihrer didSelectRowAtIndexPath() Methode platziert werden würde.

if indexPath.section == 4 { 
    // Perform Your Segue HERE // 
} 
0

Meinst du footerView des tableView? Wenn Sie das Tippereignis in der Fußzeilenansicht behandeln möchten, sollten Sie einen tapGestureRecongizer hinzufügen.

func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) { 
     let tapGestureRecongizer = UITapGestureRecognizer(target: self, action: #selector(handleGesture(_:))) 
     view.addGestureRecognizer(tapGestureRecongizer) 
    } 

    func handleGesture(gestureRecongnizer: UITapGestureRecognizer) { 
     self.performSegueWithIdentifier("toTextView", sender: self) 
    }