我有一个简单的表视图,当我点击单元格时,我希望它打开一个新的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首先通过导航控制器然后到达所需的视图控制器。
答案 0 :(得分:1)
在UITableViewDelegate方法(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
中调用[self performSegueWithIdentifier:kSegueIdentifier sender:self];
并且,根据indexPath,您可以设置一个不同的值,该值将通过方法prepareForSegue
传递给您的下一个视图控制器。