与表格视图行一样,在部分标题上分开segue

我有一个表格设置,每一行都有自己的自定义部分标题。 这是通过故事板中的原型单元完成的。 我有一个segue到一个视图控制器上的一个单击事件。 我通过ctrl拖动故事板来实现这一点。

但是,我希望我的部分标题继续使用不同的控制器。 我ctrl从我的标题原型单元格拖到故事板上的视图控制器也。

结果是,单击行并单击该行的标题,将我带到相同的视图控制器。

看起来头是链接到行。 有没有办法解决? 我可以给我的segues标识符和覆盖seg的准备? 还是有可能有一个单独的点击事件的部分标题作为行的其余部分?

更新:我必须尝试执行它,如下所示:

我ctrl从我的VC拖到故事板中的目的地VC并给了一个标识符。

在我的viewForHeaderInSection中,我添加了以下内容:

let tapper = UITapGestureRecognizer(target: self, action:Selector("seg")) tapper.cancelsTouchesInView = false headerCell.addGestureRecognizer(tapper) return headerCell 

我的seg func只是用我设置的标识符来执行一个seg,如上所述。

 func seg(){ self.performSegueWithIdentifier("feedToMembersDetailed", sender: self) } 

在我的overridePrepareForSeg中,我检查标识符并调用适当的方法:

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if (segue.identifier == "feedToMembersDetailed"){ //getting in here getMembersContentFromRow(segue) } ... extra conditions } 

最后我的getMembersContentFromRow如下所示:

 func getMembersContentFromRow(segue : UIStoryboardSegue){ var membersDetailed = segue.destinationViewController as! MembersDetailedController if let indexPath = self.feedTableView.**indexPathForSelectedRow()**{ if let selectedId = self.newsFeed?[indexPath.section].authorId{ Prefs.followedId = selectedId.toInt()! } println("setting postAuthorPic as \(self.newsFeed?[indexPath.section].authorPic)") membersDetailed.postAuthorPic = self.newsFeed?[indexPath.section].authorPic membersDetailed.postAuthorID = self.newsFeed?[indexPath.section].authorId membersDetailed.postAuthor = self.newsFeed?[indexPath.section].author } else{ //getting in here. I need a method that can retrieve indexPath for me println("could not get selected row") } } 

好吧,在这里,我不写代码,只是你需要遵循的步骤

  1. 从你的行和标题中删除你已经创build的segues。 只要分配SegueIdentifier控制器打开,说SegueIdentifierForRowSegueIdentifierForSection

  2. 由于在tableview头文件中没有动作,所以需要添加一个自定义动作,可能是UIButton或者UITapGestureRecognizer 。 小区select你可以保持原样。 而要确定部分select,您可以为每个部分设置tag

  3. 在行CellSelection上,使用标识符SegueIdentifierForRow手动初始化ViewController,对于使用不同标识符SegueIdentifierForSection的部分,手动初始化。

按照上面你应该能够做什么要求。

干杯。

您将需要实现viewForHeaderInSection:方法,并添加一个UITapGestureRecognizer到一个视图,将被重新调整为标题视图。 然后,您可以处理桌面部分标题中的水龙头,以转到不同的视图控制器。