具有子项

时间:2016-03-18 09:00:34

标签: ios iphone swift uitableview

我希望生成一个导航列表。

我有一个UITableViewController,如果单击一个单元格,则会显示UITabeViewController中显示的单元格的子项,并且应该出现一个后退按钮。

目前我正在进行测试:

var anz = 10
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return anz
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    if anz<10 {
        navigationController?.popToRootViewControllerAnimated(true)
    }
    anz = 5
    self.tableView.reloadData()
}

但是没有后退按钮(当然)。

所以看起来应该是这样的:

enter image description here

谢谢。

4 个答案:

答案 0 :(得分:0)

希望您想制作可折叠/可扩展的表格视图。

你可以参考http://www.appcoda.com/expandable-table-view/

答案 1 :(得分:0)

我在我的项目中使用了这样的扩展来处理导航后退按钮

extension UIViewController {
    var shouldShowBackButton: Bool {
        get {
            return navigationController?.viewControllers.indexOf(self) > 0
        }
    }
}

并在您的UIViewController子项

override func viewDidLoad() {
    super.viewDidLoad()

    if shouldShowBackButton {
        navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "back"), landscapeImagePhone: UIImage(named: "land_back"), style: .Plain, target: self, action: "pop")
    } else {
        navigationItem.setHidesBackButton(true, animated: false)
    }
}

答案 2 :(得分:0)

你必须在这里管理一个条件 1.首先在导航栏上添加一个后退按钮并隐藏它。 2。当您选择表视图的单元格而不是更改标签no或增加计数以管理条件时。 3.汤你有两个数组,你在表视图上加载第一个数组,当用户从表视图中选择单元格然后你增加标签号并重新加载tableview,那时你必须管理一个标签2条件来加载第二个表视图上的数组并管理后退按钮及其操作以减少计数。

答案 3 :(得分:0)

要在导航栏中设置后退按钮,您需要按下控制器。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    if anz<10 {
       navigationController?.popViewControllerAnimated(true)
    }
    anz = 5
      let vc = YourViewController with custom INIT where you can pass anz
     navigationController?.pushViewController(vc, animated: true)
}

此处 YourViewController 是您当前的视图控制器,其中包含您在图片中显示的表视图。