Swift - 如何从嵌入了容器视图的视图控制器访问导航项(编辑)?

时间:2016-04-09 23:18:58

标签: ios swift uitableview container-view

这个问题可能看起来有些混乱,所以我会简化。

我创建了一个视图控制器(JournalViewController),它包含2个容器视图(MealPlanViewController,ExerciseViewController - 你可以忽略这个容器)。 MealPlanViewController有一个UITableView,我希望能够使用左侧导航编辑按钮项删除/移动UITableview的行。但是,当我在JournalViewController中创建导航项时,我不知道如何使用容器视图的UITableView使其可编辑。

以下是一个例子:

enter image description here

这是我的JournalViewController类:

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
        })
    }
}



}

1 个答案:

答案 0 :(得分:0)

在mealPlanViewController类中,您可以在用户按下编辑按钮时设置IBAction。在IBAction中,您可以调用任何影响Tableview的函数。

  @IBAction func editTable() {
          tableView.setEditing(true, animated: true)

  }

在此之后,您的TableDelegate函数将接管删除和移动行。