eventMapViewController

eventMapViewController

我想使用Storyboard在ViewController之间传递信息,但是出现错误...我的代码如下

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"ToAssistance"])
    {
        NSLog(@"To assistance");
    }
    else if([[segue identifier] isEqualToString:@"ToMap"])
    {
        UINavigationController * navController = (UINavigationController *)[segue destinationViewController];
        EventMapViewController * eventMapViewController = (EventMapViewController *)[navController topViewController];
    }
}


但是在线

EventMapViewController * eventMapViewController = (EventMapViewController *)[navController topViewController];


我得到以下异常

2012-04-23 19:49:00.369 StoryboardAssistance[9916:11603]
-[EventMapViewController topViewController]: unrecognized selector sent to instance 0x6e86380 2012-04-23 19:49:00.370 StoryboardAssistance[9916:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[EventMapViewController topViewController]: unrecognized selector sent to instance 0x6e86380'
*** First throw call stack: (0x135b022 0x2037cd6 0x135ccbd 0x12c1ed0 0x12c1cb2 0x546a 0x5424be 0x135ce99 0x11a14e 0x11a0e6 0x1c0ade 0x1c0fa7 0x1c0266 0x13f3c0 0x13f5e6 0x125dc4 0x119634 0x15fdef5 0x132f195 0x1293ff2 0x12928da 0x1291d84 0x1291c9b 0x15fc7d8 0x15fc88a 0x117626 0x218d 0x20f5) terminate called throwing an exception(lldb)


有什么建议么?

最佳答案

根据您的例外情况,您似乎在向“ eventMapViewController”索要其topviewontroller,由于它不是导航控制器,因此它显然不存在。如果您在哪里寻找它,可以在这里看到

[navController topViewController];


该navcontroller实际上是“ EventMapViewController”类型的控制器,这意味着

UINavigationController * navController = (UINavigationController *)[segue destinationViewController];


并没有给你一个uinavigationcontroller,而是给你想要的“ EventMapViewController”。所以只需删除这两行并添加

EventMapViewController * eventMapViewController = (EventMapViewController *)[segue destinationViewController];


如果这不起作用,那么请注释此行

EventMapViewController * eventMapViewController = (EventMapViewController *)[navController topViewController];


并添加一个

NSLog(@"%@",navController);


告诉我输出。

10-08 18:49