我有这个奇怪的问题,我无法为目标视图设置属性。我做了一千次。 这是代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"InboxSegue"]){
InboxViewController *controller = (InboxViewController *)segue.destinationViewController;
controller.ERA = ERA;
}
}
我已经初始化了两个控制器中的所有属性。我做了调试,所有变量都有值而不是nil。
错误: ReadLater [43713:60b] * 由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [UINavigationController setERA:]:无法识别的选择器发送到实例0x10976e760&#39 ;
答案 0 :(得分:2)
错误原因告诉您segue的目标视图控制器实际上是导航控制器。
所以你需要在它的导航堆栈中访问你的视图控制器,如下所示:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"InboxSegue"]){
UINavigationController * navigationController = (UINavigationController *)[segue destinationViewController];
InboxViewController * inboxViewController = [[navigationController viewControllers] objectAtIndex:0];
inboxViewController.ERA = ERA;
}
}
答案 1 :(得分:0)
检查如果您已将“InboxSegue”正确分配给特定控制器,则会在segue.destinationViewController
给出其他控制器然后预期的控制器时发生