2016-08-29 5 views
0

ich unten ein ähnliches Tableview wie das zu schaffen versuchen:Swift - Expand Tableview ohne Storyboard segue

https://github.com/justinmfischer/SwiftyExpandingCells

Ich habe bereits eine komplette Tableview mit Inhalt, einschließlich einem Filtersystem. Das aktuelle Problem ist, dass ich die gleiche Funktionalität zum Erweitern von Zellen implementieren und detaillierte Informationen anzeigen möchten, ohne Storyboard zu verwenden.

Der Beispielcode (Link) verwendet ein Storyboard-Segment, aber ich möchte das loswerden, damit es im Prinzip dasselbe über Code tun kann. Ich habe das Etikett für den Hintergrund entfernt. Möchte nur den Titel und einen neuen Controller zuerst durch Klicken auf eine Tabellenansicht Zelle erhalten.

DetailViewController

class DetailVC: UIViewController { 

var brand: Brand? 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.setup() 
} 

func setup() { 
    self.view.frame.origin.y = UIApplication.sharedApplication().statusBarFrame.size.height 

    if let brand = self.brand { 
     self.title = brand.name 
    } 
} 
} 

Dieser Teil muss

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    self.selectedCellFrame = tableView.convertRect(tableView.cellForRowAtIndexPath(indexPath)!.frame, toView: tableView.superview) 
    self.selectedBrand = BrandManager.sharedInstance.brands[indexPath.row] 

    self.performSegueWithIdentifier(.DetailVC , sender: nil) 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    switch segueIdentifierForSegue(segue) { 
     case .DetailVC: 
      let vc = segue.destinationViewController as! DetailVC 
       vc.brand = self.selectedBrand 

      self.navigationController?.delegate = self 
    } 
} 
+0

ich die GitHub Code verknüpft denken ändern, ist die Antwort selbst. –

+0

Der verknüpfte Code verwendet jedoch ein Storyboard-Segment (siehe entsprechenden Code). Meine Frage ist, wie man dies zu einer nicht Storyboard-Version ändern kann :-) –

+0

Ohne Storyboard oder nur ohne Überleitung? – Lion

Antwort

0
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     self.selectedCellFrame = tableView.convertRect(tableView.cellForRowAtIndexPath(indexPath)!.frame, toView: tableView.superview) 
     self.selectedBrand = BrandManager.sharedInstance.brands[indexPath.row] 

     let vc = storyboard?.instantiateViewControllerWithIdentifier("DetailVc") as! DetailVC 
     vc.brand = self.selectedBrand 
     self.navigationController?.pushViewController(vc, animated: true) 
    }//// add the storyboardID for the detailsVc as "DetailVc" 
+0

Ich zweite, dass .. –

+0

Danke für Ihre Antwort, aber ist es nicht im Moment mit dem Storyboard verknüpft? Ich berühre Storyboard nicht auf irgendeine Art :-) –