单击UITableViewCell时打开新的UIViewController?

时间:2015-04-18 09:17:59

标签: ios uitableview swift uiviewcontroller

我有一个简单的表视图,当我点击单元格时,我希望它打开一个新的UIViewController。目前我拥有它以便它现在转到特定的View Controller,但似乎每个单元格都会导致相同的View Controller。我希望每个人都去另一个。这是我的尝试:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    var indexPath = self.tableView.indexPathForSelectedRow()
    let navController = self.storyboard?.instantiateViewControllerWithIdentifier("ChatController") as UINavigationController

    navController.hidesBottomBarWhenPushed = true
    let chatController = navController.viewControllers.first as ChatController
    chatController.currentUserName = self.firstName + " " + self.lastName
    chatController.chatWith = chatNames[indexPath!.row]
    chatController.currentUserObjectID = self.objectID
}

然而,这似乎不起作用,因为我收到错误Storyboard doesn't contain a view controller with identifier 'ChatController''。如果有帮助,segue首先通过导航控制器然后到达所需的视图控制器。

1 个答案:

答案 0 :(得分:1)

在UITableViewDelegate方法(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath中调用[self performSegueWithIdentifier:kSegueIdentifier sender:self];

并且,根据indexPath,您可以设置一个不同的值,该值将通过方法prepareForSegue传递给您的下一个视图控制器。