ios / xcode / objective-c:嵌入导航控制器

时间:2015-07-19 15:33:41

标签: ios objective-c xcode segue

我有一个从细节视图控制器中的按钮到显示地图的新模态视图控制器的segue。

要传递要在地图上显示的位置,我使用preparetosegue如下:

if ([segue.identifier isEqualToString:@"showMap"]) {

        IDMapView *destViewController = segue.destinationViewController;   
            destViewController.contact=_contact;
             }

但是,在将模态视图控制器嵌入到导航控制器中以实现取消按钮后,当我点击按钮时,应用程序正在崩溃,并在日志中显示错误:

[UINavigationController setContact:]: unrecognized selector sent to instance 0x7f8738ea5ce0
(lldb) 

错误似乎与导航控制器没有属性联系人(位于视图控制器上)有关。

有人能提出正确的方法吗?

1 个答案:

答案 0 :(得分:0)

destinationViewController现在是UINavigationController,而不是IDMapView。您需要从topViewController获取UINavigationController

if ([segue.identifier isEqualToString:@"showMap"]) {
    UINavigationController *navigationController = segue.destinationViewController;
    IDMapView *destViewController = navigationController.topViewController;   
    destViewController.contact=_contact;
}