我在 UIViewController
中有一个 UITableView
。
当用户按下 UITableView
中的一个单元格时,我想显示另一个 UIViewController
。所以我有 UIViewController
“A”,里面有 UITableView
“A”,我想单击 UITableView
“A”中的一个单元格,然后推送到 UIViewController
“B”。我尝试简单地将 UITableViewCell
的 segue 连接到 UIViewController
但这导致在按下单元格时没有任何反应。我也尝试了以下代码,但没有成功。同样,没有任何反应,没有错误。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
AlbumsViewController *albumsViewControllerObj = [mainStoryboard instantiateViewControllerWithIdentifier:@"AlbumsViewController"];
[albumsViewControllerObj performSegueWithIdentifier:@"showAlbumDetail" sender:self];
}
到目前为止,我找到的所有建议都涉及从 TableView Controller 到另一个 View ,我知道该怎么做并且从未遇到过问题。出于某种原因,虽然我在从 TableView 移动到另一个 View Controller 时遇到了问题。如果重要(我认为可能),TableView“A”的委托(delegate)和数据源是 View Controller“A”。任何建议都很好,谢谢!
最佳答案
首先,将delegate
和datasource
设置为self。
其次,只需将 segue 从 ViewControllerA 拖到 ControllerB
第三,select时只执行segue
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self performSegueWithIdentifier:@"showAlbumDetail" sender:nil];
}
然后,在prepareForSegue
中,将数据传递给destinnatinVC
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if (segue.identifier == yourid) {
ViewControllerB * = segue.destinationViewController;
//Pass data
}
}
关于ios - 从 UITableView(不是 UITableViewController)转到 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30204018/