将节标题上的分段与表视图行上的分段分开 [英] separate segue on section header as on table view row

查看:14
本文介绍了将节标题上的分段与表视图行上的分段分开的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表视图设置,其中每一行都有自己的定制节标题。这是通过故事板中的原型单元完成的。我在一行的Click事件上有一个指向视图控制器的段。我是通过按Ctrl键拖动情节提要来实现这一点的。

但是,我希望我的节标题分段到不同的控制器。我按Ctrl键从标题原型单元格拖动到情节提要板上的一个视图控制器。

结果是,同时单击行和单击行的标题都会将我带到同一个视图控制器。

标题似乎链接到行。有什么办法可以绕过这件事吗?我可以给我的segues标识符并覆盖准备seg吗?或者,是否可以在区段标题上设置单独的单击事件作为行的其余部分?

更新: 我必须尝试按如下方式实现:

我按Ctrl从我的vc拖动到情节提要中的目标vc,并为seg指定了一个标识符。

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

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

我的seg函数只使用我如上所述设置的标识符来执行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
    }

最后,我的getMembersContent FromRow如下所示:

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. 从行和标题中删除已创建的序号。只需为要打开的控制器分配SgueIdentifierForRowSegueIdentifierForSection.

  2. 因为表视图头中没有action,所以您需要添加一个自定义action,可以是UIButton或者UITapGestureRecognizer。单元格选择您可以保持原样。要确定节选择,您可以为每个节设置tag

    /li>
  3. 在行单元格选择中,使用标识符来手动初始化视图控制器,对于使用不同标识符SegueIdentifierForSection.

  4. 的节也是如此

按照上面的说明操作,您应该能够执行所需的操作。

干杯。

这篇关于将节标题上的分段与表视图行上的分段分开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆