2016-04-09 24 views
0

die Frage mag ein wenig verwirrend erscheinen, so werde ich vereinfachen.Swift - Zugriff auf das Navigationselement (Bearbeiten) vom View-Controller aus, in dem eine Containeransicht eingebettet ist?

Ich habe einen View-Controller (JournalViewController) erstellt, der 2 Containeransichten enthält (MealPlanViewController, ExerciseViewController - Sie können diesen Container ignorieren). Der MealPlanViewController hat eine UITableView und ich möchte in der Lage sein, die Zeilen der UITableview zu löschen/zu verschieben, indem ich die linke Navigationsschaltfläche Edit button benutze. Wenn ich jedoch das Navigationselement im JournalViewController erstelle, weiß ich nicht, wie es mit dem UITableView der Containeransicht bearbeitbar gemacht werden kann. Hier

ein Beispiel:

enter image description here

Hier ist meine JournalViewController Klasse:

import UIKit 

class JournalViewController: UIViewController { 

@IBOutlet var exerciseContainerView: UIView! 
@IBOutlet var mealContainerView: UIView! 

@IBOutlet var mealOrExerciseControl: UISegmentedControl! 

var mealScheduleTableView: UITableView? 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.navigationItem.leftBarButtonItem = self.editButtonItem() 
} 

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

@IBAction func showComponent(sender: UISegmentedControl) 
{ 
    if sender.selectedSegmentIndex == 0 
    { 
     UIView.animateWithDuration(0.5, animations: 
     { 
       self.exerciseContainerView.alpha = 0 
       self.mealContainerView.alpha = 1 
       self.navigationItem.leftBarButtonItem = self.editButtonItem() 
     }) 
    } 

    else 
    { 
     UIView.animateWithDuration(0.5, animations: 
     { 
       self.exerciseContainerView.alpha = 1 
       self.mealContainerView.alpha = 0 
       self.navigationItem.leftBarButtonItem = nil 
     }) 
    } 
} 



} 

Antwort

0

In der mealPlanViewController Klasse Sie ein IBAction für wenn der Benutzer auf die Schaltfläche Bearbeiten gesetzt würden. Innerhalb der IBAction können Sie beliebige Funktionen aufrufen, die die Tabellenansicht beeinflussen.

Danach übernehmen Ihre TableDelegate-Funktionen zum Löschen und Verschieben von Zeilen.

+0

Ich dachte daran, das zu tun, aber wenn ich das tue, wie würde ich die 'func Tableview nennen (Tableview: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool' Methode? Da diese Methode benötigt wird, um die Optionen zum Löschen und/oder Verschieben von Tabellenansichtszellen zu aktivieren. – user3171597

+0

aktualisierte die Antwort. –

+0

Danke für die Antwort! Und ich entschuldige mich, da ich ziemlich neu bin, aber wie verbinde ich die Bearbeitungsschaltfläche programmatisch aus dem ScheduleViewController? Oder muss ich den Button innerhalb des Storyboards selbst angeben und erstellen? – user3171597