UITableView Cell到一个新的ViewController

时间:2016-06-07 14:25:00

标签: ios swift uitableview segue

我正试图从UITableView Cell开始,在点击Cell时,转到另一个ViewController的swift。我有viewController名为MainMenu,我是UITableView,我正在尝试点击一个单元格,然后转到我的其他ViewController。有人可以帮忙吗?

我的UITableView代码名为Main Menu:

class MainMenu: UITableViewController {

    // Set Tabs in Table View Controller
    var tabs = [String]()


    override func viewDidLoad() {
        super.viewDidLoad()

        // Name of Tabs
        tabs = ["Scanner","QR-Codes","Cargo","Matrix","Xbox","PS4","Nintendo","Sega","Dreamcast","Xbox360","GameCube","Wii","Challenger","Mustang","Macbook","Logitech"]
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return tabs.count
    }
    // Set Tabs in View 
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("scannerCell", forIndexPath: indexPath) as UITableViewCell
        cell.textLabel!.text = tabs[indexPath.row]
        print(tabs)
        // return
        return cell
    }
} 

3 个答案:

答案 0 :(得分:1)

您将不得不实施2项:

1)在TableView和你想去的ViewController之间创建一个segue。将它命名为独特的东西。

2)在ViewController中创建一个prepareForSegue函数(即MainMenu)。像这样:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "UNIQUE NAME FROM PART 1"
    {
        if let destinationVC = segue.destinationViewController as? OtherViewController {
            // pass an object here if necessary using destinationVC and dot syntax.
        }
    }
}

答案 1 :(得分:0)

您需要实现tableView的{​​{1}}委托方法,并在其中显示新的视图控制器。

您可以使用tableView(_:didSelectRowAtIndexPath:)的{​​{1}}方法以模态方式呈现它。

或者如果您正在使用故事板,则从原型单元格创建一个segue到您想要呈现的视图控制器。

答案 2 :(得分:0)

覆盖didSelectRowAtIndexPath,抓取indexPath上的dataSource项,然后显示View Controller

istream_iterator