Objective c 根据UITableView中的单元格选择显示正确的视图控制器实例
我知道这可能会在我在网站上看到的其他问题(见参考资料)的答案部分中涉及,但由于我的经验有限,我无法理解与我的代码相关的每个部分。请原谅我的任何重复 我有一个名为Objective c 根据UITableView中的单元格选择显示正确的视图控制器实例,objective-c,uitableview,parse-platform,didselectrowatindexpath,Objective C,Uitableview,Parse Platform,Didselectrowatindexpath,我知道这可能会在我在网站上看到的其他问题(见参考资料)的答案部分中涉及,但由于我的经验有限,我无法理解与我的代码相关的每个部分。请原谅我的任何重复 我有一个名为threadsViewController的PFQueryTableViewController(本质上是一个UITableViewController),它从解析后端获取单元格信息。表视图包含的线程与您在web论坛上看到的类似 然后,我有一个单独的类postsViewController,它是另一个PFQueryTableViewCon
threadsViewController
的PFQueryTableViewController(本质上是一个UITableViewController),它从解析后端获取单元格信息。表视图包含的线程与您在web论坛上看到的类似
然后,我有一个单独的类postsViewController
,它是另一个PFQueryTableViewController,我希望显示一个包含对该特定线程的所有响应(“posts”)的表
我正在寻找的功能是,用户点击一个线程(图中的左屏幕),该线程将显示一个postsViewController
(右屏幕),其中只包含与该线程相关的帖子/响应。(见下面的基本示意图)
我从研究中了解到的:
- 解析后端由线程和后期的类建立
- 我可能会使用
delegate方法didselectrowatinexpath
- 如何知道用户点击了哪个线程单元,然后将其传递给
以便只显示来自该线程的帖子postsViewController
- 外行对如何使用
等的描述indexPath.row
postsViewController
显示哪些帖子
如果它有帮助的话,这里是我迄今为止的实现。我尝试在postsViewController
中添加一个名为fromThread
的属性,以某种方式存储线程,但除此之外,我没有任何想法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[super tableView:tableView didSelectRowAtIndexPath:indexPath];
postsViewController *postsVC = [[postsViewController alloc] init];
postsVC.fromThread = //?
[self performSegueWithIdentifier:@"threadsToPosts" sender:self];
}
参考资料
你走在正确的轨道上。您需要知道如何做两件事:(1)通过
indepath
访问解析对象,(2)在导航控制器中推送新的视图控制器
(1) 更简单:PFQueryTableVC
提供了一个名为
// indexPath is the indexPath parameter to the didSelectRow delegate method
PFObject *fromThread = [self objectAtIndexPath:indexPath];
(2) 这也很简单。但更复杂的是,有几种方法可以做到这一点。是更现代的方式,但我认为旧方式更简单,当然更容易用代码描述。在序列图像板编辑器的“标识”选项卡上为视图控制器指定了序列图像板ID。给你的文章提供一个故事板id,比如“PostVC”
要获取新实例,请按如下方式使用该情节提要id:
MyPostVC *postVC = [self.storyboard instantiateViewControllerWithIdentifier:@"PostVC"];
// initialize it with the PFObject we got above
postVC.fromThread = fromThread;
// present it on the navigation stack
[self.navigationController pushViewController:postVC animated:YES];
而
fromThread
正是PostVC
需要对与所选线程关联的帖子进行查询的地方。您可以在prepareforsgue
中将单元格数据传递给下一个ViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"threadsToPosts"]) {
UINavigationController *navCon = segue.destinationViewController;
postsViewController *postsViewController = [navCon.viewControllers objectAtIndex:0];
// Whatever you are populating your tableView with
Thread *thread = [self.thread objectAtIndex:self.tableView.indexPathForSelectedRow.row];
postsViewController.thread = thread;
}
}
你是个学者和绅士。非常感谢您抽出时间