2016-04-27 9 views
2

私はiOSモバイルアプリケーション開発とSwiftを初めて使用しています。その特定のセクションに対応するセルは、ドロップダウンすべきセクションヘッダのいずれかをクリックするとSWIFTのUITableViewControllerでセクションセルを切り替えるには?

  • :私は、次の操作を行うことができたのUITableViewControllerを実装しようとしています。
  • 0のセルを持つセクションヘッダーをクリックすると、セグがトリガーされ、別のViewControllerにプッシュされます。

0セル - >別のViewControllerにプッシュします。
n個のセル - >ドロップダウン

スウィフトでどのように達成できますか?

私はUITableViewControllerで次のコードをトグルしようとしましたが、無駄でした。

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let frame: CGRect = tableView.frame 

    let button = UIButton(type: UIButtonType.System) as UIButton 
    button.frame = CGRectMake(5, 5, frame.size.width-10, 80) 
    button.addTarget(self, action: "menuButtonAction", forControlEvents: .TouchUpInside) 
    if section == 1 { 
     button.setTitle("Home", forState: UIControlState.Normal) 
    }else if section == 2 { 
     button.setTitle("Profile", forState: UIControlState.Normal) 
    }else if section == 3 { 
     button.setTitle("Projects", forState: UIControlState.Normal) 
    }else { 
     button.setTitle("Title", forState: UIControlState.Normal) 
    } 

    let headerView = UIView(frame: CGRectMake(0, 0, frame.size.width, 150)) 
    headerView.addSubview(button) 

    return headerView; 
} 

var enabledCategory:Bool = false 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of rows 
    if (section == 3 && enabledCategory){ 
     return dataHandler.getNumberOfProjects() 
    } 
    else { 
     return 0 
    } 
} 


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("menuCellIdentifier", forIndexPath: indexPath) as? TableViewCell 

    // Configure the cell... 

    if indexPath.section == 3 { 
     cell!.customLabel.text = String(indexPath.row) 
    } 
    return cell! 
} 


override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    if indexPath.section == 3 { 
     enabledCategory = !enabledCategory 
     tableView.reloadSections(NSIndexSet(index: 3) , withRowAnimation: .Fade) 
    } 
} 

そして、私は、セクションの上に1と2

感謝をクリックして、別のViewControllerにプッシュする方法のさっぱりだが。

+0

いいえあなたはそれを改善するのに役立つことができます。誰もあなたのためのコードを書くことはありません。 – rMickeyD

答えて

0

デフォルトのUITableViewヘッダービューはクリックできません。 tableView(_:viewForHeaderInSection:)メソッドを実装する必要がありますUITableViewDelegateUIViewUIButtonまたはいくつかのクリック可能な要素

+0

私は、viewForHeaderInSectionメソッドでUIButtonを追加しました。セルを切り替えて、別のViewControllerにプッシュするにはどうすればいいですか? – Shashank

関連する問題