如何从UITableViewCell Controller内部实例化ViewControllerWithIdentifier

时间:2015-03-12 22:54:07

标签: uitableview swift

目标是从自定义 UITableViewCell 功能中创建一个新的视图控制器。我见过的所有例子都是在 UIVIewController 中完成的。

如何实现这一目标?

这是自定义表笔尖的完整控制器。

import UIKit

class feedRow: UITableViewCell {

  @IBAction func tapThing(sender: AnyObject) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    var vc:UIViewController!

    // THIS DOESN'T WORK:
self.thingController!.pushViewController(storyboard!.instantiateViewControllerWithIdentifier("thingDetail") as UIViewController, animated: true)            
  }

}

错误是"' feedRow'没有名为' thingController'"

的成员

由于这是在 UITableViewCell 中,因此它不包含其他示例所示的 UIViewController 中存在的控件。

更新:根据答案,这已转移到 didSelectRowAtIndexPath 部分。

  func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    var goThing = storyboard.instantiateViewControllerWithIdentifier("thingDetail") as UIViewController
    self.presentViewController(goThing, animated:true, completion:nil)

  }

1 个答案:

答案 0 :(得分:1)

在你的视图控制器类中调用它,你的tableview在函数didSelectRowAtIndexPath中它应该工作。