Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用相同数据源在UITableView和MapView之间切换_Ios_Objective C_Xcode - Fatal编程技术网

Ios 使用相同数据源在UITableView和MapView之间切换

Ios 使用相同数据源在UITableView和MapView之间切换,ios,objective-c,xcode,Ios,Objective C,Xcode,好的,现在开始…我正在做一个项目,用户从一个搜索屏幕开始,在那里他们输入一些条件。提交搜索时,UITableViewController被推入UINavigationController,并显示搜索结果。搜索结果中的所有这些项目都有一个lat/long,因此我们希望用户也可以选择在地图中显示结果 我们想要的是能够在列表和地图视图之间来回“切换”,而无需在导航控制器堆栈中添加任何新内容……这意味着,如果他们切换到地图视图,然后点击后退箭头,他们希望用户返回搜索屏幕。另一件事是,在列表视图和地图视图

好的,现在开始…我正在做一个项目,用户从一个搜索屏幕开始,在那里他们输入一些条件。提交搜索时,UITableViewController被推入UINavigationController,并显示搜索结果。搜索结果中的所有这些项目都有一个lat/long,因此我们希望用户也可以选择在地图中显示结果

我们想要的是能够在列表和地图视图之间来回“切换”,而无需在导航控制器堆栈中添加任何新内容……这意味着,如果他们切换到地图视图,然后点击后退箭头,他们希望用户返回搜索屏幕。另一件事是,在列表视图和地图视图之间切换时,它们需要水平翻转效果,因此用户可以清楚地看到,它们没有推到导航堆栈上

所以我的问题是我不知道如何让这一切一起工作。我得到的最接近的是在列表和贴图之间切换时,基本上在导航控制器堆栈中使用VC的数组,并用新的数组(贴图)替换最后一个数组(列表),反之亦然……但这看起来很笨重,没有提供我能找到的任何动画过渡效果


有什么想法吗?我可能过于复杂了,但我已经在这方面坚持了几天,真的需要一些帮助。

你可以通过使用视图轻松实现这一点,不需要使用单独的视图控制器,因此你需要一个视图控制器而不是tableview控制器,例如,在tableview的顶部查看图像,这样做吧,在视图控制器包含tableview中,添加一个单独的视图,其中包含地图视图和后退按钮,如下图所示

视图中,MapView
应位于tableview的顶部。在上面的示例中,我添加了一个后退按钮和
aMapView
作为标签,这样你就可以用地图视图替换它。按钮操作在包含tableview的同一视图控制器中处理

这样,您就不会向导航控制器的堆栈中添加任何新内容

在编码部分,你可以像下面那样使用,我使用tableview的单元格选择方法,通过翻转效果显示这个地图视图

 - (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) {

   }];
}

wy否决投票支持我的答案?我的回答有什么问题吗?如果有,你能评论一下吗?这样我会改正的