放松两个segues

时间:2015-11-02 13:14:26

标签: ios iphone swift segue

我的应用程序(相关部分)的定义:

我在我的视图(MAP)中有地图。用户单击视图,应用反向地理编码以获取地址并转移到另一个视图(PICKER),它允许用户从选择器中选择她想要的地点名称或转到另一个视图并提供自定义名称(CUSTOM)。

Storyboard of the app

问题是,当我尝试从CUSTOM中解除时,它失败了。

在自定义中,我放松到与MAP控制器中的PICKER相同的方法,即

@IBAction func unwindCancel(segue:UIStoryboardSegue) {
    // do nothing as saving was cancelled
    return
}

@IBAction func unwindSave(segue:UIStoryboardSegue) {
    self.reloadGeodesics()
}

下面我将介绍我如何在故事板中展开,即按住Ctrl键并取消(并保存)退出并选择相应的动作segue。

This is my action segue

这些是我的错误消息

  

2015-11-02 14:58:59.753 via [19620:2883125]    - [via.LocationNamePickerViewController unwindSave:]:无法识别的选择器发送到实例0x7bb35770

     

2015-11-02 14:58:59.789 via [19620:2883125] ***终止app由于   未捕获的异常'NSInvalidArgumentException',原因:   ' - [via.LocationNamePickerViewController unwindSave:]:无法识别   选择器发送到实例0x7bb35770'

点击“保存”。 via是我的应用名称,LocationNamePickerViewController是PICKER的控制者。 我看了很多教程,对我来说,我似乎做得很对。

这是一个问题,从错误地点击PICKER中的其他到CUSTOM做segue? MAP和PICKER之间的导航控制器是否会使编译器崩溃?从错误看起来,PICKER的控制器无法将动作segue调用委托给MAP的控制器。这种情况会发生吗?如果发生这种情况怎么能解决? PICKER中的一切都运行良好,问题就在于解开CUSTOM。

2 个答案:

答案 0 :(得分:2)

你创建unwind segue的方式不对,你应该像这样创建segue

控制+从位置拖动输入VC到地图退出

的Gif

答案 1 :(得分:0)

希望这会对你有所帮助

您在地图视图之后放置了UINavigationController,因此LocationNamePicker控制器和位置名称输入控制器位于该导航控制器的堆栈上,因此即使您在故事板中选择了该操作,它似乎也无法识别地图视图控制器的展开操作。

为什么不在地图视图控制器之前放置导航控制器?

我认为它不会崩溃。