2016-03-29 15 views
0

So habe ich eine UITableView in meinem ViewController eingerichtet und die UITableView-Werte werden mit einem Array aufgefüllt. Wann immer ein Benutzer eine der Zellen berührt, sollen sie zu einem anderen View-Controller gebracht werden. Nun, wenn die App geladen wird und die erste Zelle angeklickt wird, passiert nichts, wenn die zweite Zelle angeklickt wird, dann erscheint der der ersten Zelle zugeordnete Ansichts-Controller, und von dort geht es dann bergab. Ich kann anscheinend keine Lösung für mein Problem finden, also dachte ich, ich würde Leute fragen, die mir vielleicht in die richtige Richtung zeigen könnten. Hier ist der zugehörige Code. Vielen Dank im Voraus!Probleme mit UITableView

import UIKit 

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

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

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

private let choices = ["About this App", "Touch Counting", "Slider Counting", "Calculator", "Date Picker"] 
private let simpleTableID = "simpleTableID" 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return choices.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell = tableView.dequeueReusableCellWithIdentifier(simpleTableID) 

    if cell == nil { 
     cell = UITableViewCell(style: .Default, reuseIdentifier: simpleTableID) 
    } 
    cell?.textLabel?.text = choices[indexPath.row] 
    return cell! 
} 

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { 
    switch(indexPath.row) { 
     case 0: 
      let vc = storyboard?.instantiateViewControllerWithIdentifier("AboutThisApp") 
      presentViewController(vc!, animated: true, completion: nil) 
     case 1: 
      let vc = storyboard?.instantiateViewControllerWithIdentifier("TouchCounting") 
      presentViewController(vc!, animated: true, completion: nil) 
     case 2: 
      let vc = storyboard?.instantiateViewControllerWithIdentifier("SlidingCounter") 
      presentViewController(vc!, animated: true, completion: nil) 
     case 3: 
      let vc = storyboard?.instantiateViewControllerWithIdentifier("Calculator") 
      presentViewController(vc!, animated: true, completion: nil) 
     case 4: 
      let vc = storyboard?.instantiateViewControllerWithIdentifier("Date") 
      presentViewController(vc!, animated: true, completion: nil) 
     default: 
      NSLog("NEVER!") 
    } 
} 
} 

Antwort

2

Wechsel:

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

zu:

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

didSelectRowAtIndexPath wird aufgerufen, wenn der Benutzer eine Tabellendarstellung Zeile auswählt, aber didDeselectRowAtIndexPath aufgerufen wird, wenn eine Zeile nicht ausgewählt ist, was passiert, die erste Zeile, sobald der Benutzer die zweite Zeile berührt.

+0

Vielen Dank! Ich fühle mich jetzt dumm, aber danke! – user3727648

Verwandte Themen