我想在地图视图和控制器之间创建一个segue。但是,按住Ctrl键并尝试在地图视图和控制器之间建立连接不起作用。我看到有人说你可以通过使用performSegueWithIdentifier
以编程方式调用它,但我甚至不能创建一个segue来为它分配一个标识符,以便稍后可以调用它。如果什么都没有解决,我只是要创建一个隐藏的按钮,让一个segue,并调用在地图视图点击segue。但是,如果没有这种做法,我想知道。无法从MapKitView继续到控制器
回答
首先了解您需要什么样的细节。可能你想用后退按钮回到地图。简单的方法是将所有VC嵌入到导航控制器中。我们最后会这样做。
让ctrl +从第一个VC拖到第二个。确保你缩小了,你不是选择了按钮,而是选择了整个VC。这样我们就创建了手动节点。为标识符提供一个合适的名称,因为我们需要稍后在代码中引用它。
现在到了检查器中设置所述标识符如上所述。确保你选择了两个VC之间的循环赛事。
然后进入第一个VC,ctrl +拖动放大后的地图来设置一个动作。对于我的情况,我有一个名为pop的按钮,我将通过Ctrl +将其拖动到实现文件来设置操作。
之后,我希望用户点击POP,在你的情况下,地图或标记,然后发射我们创建的segue。
的代码是:
- (IBAction)pop:(id)sender {
[self performSegueWithIdentifier:@"push" sender:self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"push"]) {
//get the presenting vc here
id destionationVC=segue.destinationViewController;
//put some values to it
//destionationVC.value=2; //something;
//done
}
}
如果您现在尝试运行,你会崩溃。因为Push segues需要将UINavigationController作为它的根视图控制器。在这样做的时候,我们会自动获得一个后退按钮。所以选择第一个VC,在你的情况下,选择MaPVC并选择嵌入导航控制器。像这样,
然后运行该应用程序,然后通过单击我的案例中的Pop来继续。不过,如果适用的话,请使用这个概念。有什么问题欢迎?
P.S performSegueWithIdentifier轮流调用您的-prepareSegue实现。如果你没有实现这个方法,它会调用UIViewControllers -prepareSegue。那是一些继承去那里。无论如何,希望它有帮助。
我接受这个答案,因为我不知道可以创建手动游戏。但是,您无法将操作添加到MapView,因此它们不能有segag。于是,我创建了一个手动segue,然后在MapView中添加了一个UITapGestureRecognizer,并向识别器添加了一个动作来执行segue。 – Gasim 2014-10-06 11:25:36
- 1. 继续从appdelegate到视图控制器
- 2. 无法找到控制在asp.net中继器控制
- 3. 在我编辑控制器之前,请继续获取“资源无法找到”
- 4. 限制mapkitview
- 5. 控制台计算器继续计算
- 6. sem_wait无法继续
- 7. 无法从中继器的项目模板访问控制ID
- 8. Laravel确认控制器方法并继续执行任务
- 9. Xcode 4 UIButton继续推送到桌面视图控制器
- 10. 无法从另一个控制器加载控制器
- 11. 无法从一个控制器重定向到另一个控制器 - Spring MVC
- 12. 继承控制器
- 13. 使用ajax呼叫控制器无法找到控制器
- 14. 通过视图控制器继续计时器
- 15. 子控制器不从父控制器继承
- 16. 无法从Rails控制器渲染JavaScript
- 17. 的ASP.NET MVC - 无法从控制器
- 18. 无法从视图控制器
- 19. 无法从我的控制器/构造
- 20. 无法从其它控制器
- 21. 无法从控制器获得$ _post值
- 22. 控制器无法从JQuery.ajax接收JSON
- 23. Angularjs:无法从控制器打印
- 24. 无法从呈现视图控制器
- 25. ASP.net MVC无法从控制器
- 26. 无法将连接器从IBOutlet链接到视图控制器
- 27. 继续从dequeueReusableCellWithIdentifier得到零?
- 28. 当继电器继续运行时,微控制器每次停止工作
- 29. 群组控制器无法找到
- 30. 无法找到Spring MVC控制器
要创建一个可以以编程方式调用的segue,请按住Ctrl键并从视图控制器图标拖动到目标场景。你不能从MKMapView启动一个segue,因为它不支持动作 – Paulw11 2014-10-05 07:46:02
我要在这里讨论主题。为了模拟点击动作,我应该为它创建一个手势识别器吗? – Gasim 2014-10-05 07:50:14
通常情况下,如果您使用轻击手势识别器,但是您可以尝试它,那么当有人点击某个注释时,您会触发一个segue - 我认为会有错误触发的风险。 – Paulw11 2014-10-05 07:51:34