带child的ios UITableViewController元素

带child的ios UITableViewController元素,ios,iphone,swift,uitableview,Ios,Iphone,Swift,Uitableview,我希望生成一个导航列表 我有一个UITableViewController,我希望如果单击一个单元格,该单元格的子单元格将显示在UITableViewController中,并且会出现一个后退按钮 目前,对于测试,我执行了以下操作: var anz = 10 override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return anz } overri

我希望生成一个导航列表

我有一个UITableViewController,我希望如果单击一个单元格,该单元格的子单元格将显示在UITableViewController中,并且会出现一个后退按钮

目前,对于测试,我执行了以下操作:

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()
}
var anz=10
重写func tableView(tableView:UITableView,numberofrowsinssection:Int)->Int{
返回澳新银行
}
重写func tableView(tableView:UITableView,didSelectRowAtIndexPath:nsindepath){

如果anz希望您希望创建可折叠/可扩展的表视图


您可以参考

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

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

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

在navi中使用后退按钮你需要推动你的控制器

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)
}
override func tableView(tableView:UITableView,didSelectRowAtIndexPath:nsindepath){

如果你说单元格的子级是什么意思?像catergory的A category这样的数据结构可以有一个“子级”-类别是否要在单元格或导航栏中设置后退按钮?此代码是否在视图控制器类中?此视图控制器是否为navigationcontroller的子级?请提供更多代码。谢谢!但这不是我想要的,每个类别都可以有x个类别,这可以有x个子类别,这可以…等等。…通过为n个根元素设置plist文件,您可以管理您的类别和子类别等。如果类别为choisen,是否会有后退按钮?是的,通过按照webservices/db编程设置plist,您可以检索。我猜不需要后退按钮,再次点击类别将取消子类别列表。谢谢!但这是什么意思:“返回navigationController?.viewController.indexOf(self)>0”或如何更改它?navigationItem.leftBarButtonItem=UIBarButtonItem(图像:UIImage(名称:“back”)、LandscapeMagePhone:UIImage(名称:“land_back”)、样式:。普通、目标:self、操作:“pop”)不显示任何按钮!请确保您拥有名称为“后退”的资源(资产)。这是自定义后退按钮。如果是LeftBarButtonim自定义,您应该拥有它。通常,您不应更改“return navigationController?.ViewController.indexOf(self)>0”它适用于所有视图控制器,但如果在某些情况下,根据您的设计要求,您需要更新此行为,您可以简单地覆盖此变量并返回false。好的,我想我知道了!但是代码
navigationItem.leftBarButtonItem=UIBarButtonItem(image:UIImage(名为:“back”)、landscapeImagePhone:UIImage(名为:“land_back”)、style:.普通、target:self、action:“pop”)
没有显示后退按钮。很抱歉,我在ios上很新,但“YourViewController”是什么意思?您的视图控制器类中有您在问题中提到的上述代码:)