gpt4 book ai didi

ios - 同一数据源的 UITableView 和 MapView 之间切换

转载 作者:行者123 更新时间:2023-12-01 22:44:20 24 4
gpt4 key购买 nike

好的,就这样吧……我正在做一个项目,用户从一个搜索屏幕开始,他们在其中输入一些条件。当他们提交搜索时,UITableViewController 会被推送到 UINavigationController 中,并显示搜索结果。搜索结果中的所有这些项目都有纬度/经度,因此我们希望用户也可以选择在 map 中显示结果。

我们想要的是能够在列表和 map View 之间来回“切换”,而无需在导航 Controller 堆栈中添加任何新内容......意思是,如果他们切换到 map View 然后点击后退箭头,他们想要用户返回搜索屏幕。另一件事是,当在 ListView 和 map View 之间切换时,他们想要一个水平翻转效果,所以用户很清楚他们没有推到导航堆栈上。

所以我的问题是我无法弄清楚如何让这一切一起工作。我最接近的是在列表和 map 之间切换时,基本上是在导航 Controller 堆栈中获取 VC 数组并将最后一个(列表)替换为新的( map ),反之亦然......但这似乎笨重并且不提供我能找到的任何动画过渡效果。

有任何想法吗?我可能过于复杂了,但我已经坚持了几天了,真的需要一些帮助。

最佳答案

你可以通过使用 View 轻松实现这一点,无需使用单独的 View Controller ,为此你需要一个 View Controller 而不是 tableviewcontroller 例如在 tableview 顶部查看图像,所以让我们在你的 View 中这样做 Controller 包含表格 View ,添加一个单独的 View ,其中包含您的 map View 和后退按钮,如下图所示

enter image description here

View-MapView应该在 tableview 的顶部。在上面的示例中,我添加了一个后退按钮和 aMapView作为标签,因此您可以将其替换为 map View 。按钮操作在包含 tableview 的同一 View Controller 中处理

这样你就不会在导航 Controller 的堆栈中添加任何新东西

在编码部分你可以像下面这样使用我采用tableview的单元格选择方法通过翻转效果来显示这个 map View

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//set map views co-ordinates
//perform animation
[UIView transitionWithView:self.view duration:0.6 options:UIViewAnimationOptionTransitionFlipFromRight animations:^{
[self.view insertSubview:self.mapView aboveSubview:self.aTableView]; //hear self.mapView is container view for botton and map view similar to `View-MapView` in the above image
} completion:^(BOOL finished) {

}];
}

- (IBAction)backButtonAction:(id)sender {
[UIView transitionWithView:self.view duration:0.6 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[self.view insertSubview:self.aTableView aboveSubview:self.mapView];
} completion:^(BOOL finished) {

}];
}

关于ios - 同一数据源的 UITableView 和 MapView 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26987465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com