繁体   English   中英

prapareForSegue无法为目标控制器设置任何属性

[英]prapareForSegue cannot set any property for destination controller

我有一个奇怪的问题,我无法为目标视图设置属性。 我已经做过一千遍了。 这是代码:

- (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'

错误原因表明您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;

    }

}

检查是否已将“ InboxSegue”正确分配给特定的控制器,当segue.destinationViewController提供了其他一些控制器,然后又是预期的控制器时,就会发生这种情况

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM