2016-06-17 4 views
0

Ich bin ziemlich neu in der Entwicklung von ios. Ich habe eine Tabellenansicht mit 2 AbschnittenMachen Sie jedes Element in der Tabellenansicht klickbar, um eine Aktion auszuführen - Swift

Tableview:

import UIKit 

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{ 
var people = ["ABC","PQR","LMN"] 
var languages = ["Android","Java","C++",".Net"] 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

} 

func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 2 
} 
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if section==0 
    {return people.count} 
    else 
    {return languages.count 
    } 
} 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell 
    if indexPath.section==0{ 
     cell.textLabel?.text = people[indexPath.row] 
    } 
    else{ 
     cell.textLabel?.text = languages[indexPath.row] 

    } 
    return cell 
} 
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 
    if section==0{ 
     title="Names" 
    } 
    else{ 
     title="Languages" 
    } 
    return title 
} 
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    tableView.deselectRowAtIndexPath(indexPath, animated: true) 
} 
} 

ich in der Tabellenansicht klickbare jedes Element machen will. Wenn ein Element aus der Tabellenansicht angeklickt wird, öffnet sich eine neue entsprechende Tabellenansicht. Kann mir jemand dabei helfen?

+0

Haben Sie vor, auf Klick in der Tabellenansicht zu navigieren? –

+0

Fügen Sie einfach das, was Sie benötigen, in die 'didSelectRowAtIndexPath'-Funktion ein, basierend auf dem indexPath ... –

+0

Sie möchten etwas wie bei Klick auf' Sprache' die Liste der Sprache anzeigen möchten. Habe ich recht? –

Antwort

0

Alles, was Sie brauchen, wenn eine if/switch-Anweisung in Ihrem didSelectRowAtIndexPath Abschnitt. Zum Beispiel:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    tableView.deselectRowAtIndexPath(indexPath, animated: true) 
    if (indexPath.row == 0) { 
     //do something 
    } 
    else if (indexPath.row == 0) { 
     //do something else 
    } 
} 

Nach der Tatsache, dass Sie eine neue Tabelle Ansicht nach Klick wollen, glaube ich Ihnen eine segue ausführen sollen einen neuen View-Controller zu präsentieren. Siehe hier: How to segue programmatically using swift

+0

Danke. Aber was schreibe ich in die if-Anweisung. Wie navigiere ich zur neuen Tabellenansicht? – PersianBlue

+0

Das ist der Grund, warum ich einen Link für Sie hinzugefügt habe, um Segues auszuführen. Sie müssen Ihre anderen Tabellenansichten im Storyboard haben, ihnen einen eindeutigen Bezeichner geben und dann performSegueWithIdentifier mit einem anderen Bezeichner in der if-Anweisung verwenden. – AnthoPak

0

Sie Navigation auf andere Controller wie dies erreichen können,

Zuerst Navigation Controller mit Ihrer Ansicht nach müssen einbetten, so dass Sie leicht navigieren können.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
{ 
    if (indexPath.row == 0) 
    { 

     let vc = self.storyboard?.instantiateViewControllerWithIdentifier("AddVC") as! addRecordViewController 
     self.navigationController?.pushViewController(vc, animated: true) 
    } 
    else 
    { 
     // Navigate on other view 
    } 
} 

Hoffe, das wird helfen.

Verwandte Themen