如何通过点击tableview单元格内的标签来呈现另一个视图控制器

时间:2015-03-15 19:51:35

标签: ios iphone uitableview swift

我想创建一个从tableview单元格内的对象(标签)到另一个视图控制器的segue。

示例:想象一下Instagram feed tableview - 点击图片下的喜欢的数量会推送第二个视图,其中包含喜欢图片的人的列表。

我该怎么做? 我知道在点击一个单元格时可能会这样,但我需要一个解决方案来点击单元格内的标签......

谢谢!

3 个答案:

答案 0 :(得分:1)

您必须执行以下步骤:

  1. 使用Interface Builder或在代码中为标签定义userInteractionEnabled = true,如您所愿,(非常重要!!)如果没有这个,则无法启用点击。
  2. 定义点按手势识别器的操作以处理label内的点击。
  3. 要展示另一个ViewController,您可以执行以下两项操作之一:

    • 使用界面生成器从Tap Gesture Recognizer到另一个ViewController创建一个模态segue,或者为点击手势识别器执行操作,然后显示另一个{{1}手动使用ViewController函数。
  4. 我认为第一个更容易呈现另一个presentViewController,由你决定。

    我希望这对你有所帮助。

答案 1 :(得分:0)

您只需使用按钮并设置其标题,而不是使用标签。如果您出于某种原因必须使用UILabel,则可以将userInteractionEnabled属性设置为true,然后向其中添加UITapGestureRecognizer

答案 2 :(得分:0)

您可以使用UITapGestureRecognizer

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var lblTxt: UILabel!

override func viewDidLoad() {
        super.viewDidLoad()

        let recognizer = UITapGestureRecognizer(target: self, action:Selector("handleTap:"))
        recognizer.numberOfTapsRequired = 1;
        lblTxt.addGestureRecognizer(recognizer)
        lblTxt.userInteractionEnabled = true;
}

func handleTap(recognizer: UITapGestureRecognizer){
        println("tapped!")
        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
        let secondViewController = storyBoard.instantiateViewControllerWithIdentifier("secondView") as SecondViewController
        self.presentViewController(secondViewController, animated:true, completion:nil)
    }