Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios prapareForSegue无法为目标控制器设置任何属性_Ios_Objective C_Xcode - Fatal编程技术网

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

Ios prapareForSegue无法为目标控制器设置任何属性,ios,objective-c,xcode,Ios,Objective C,Xcode,我有一个奇怪的问题,我无法设置目标视图的属性。我已经做了一千次了。 代码如下: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if([segue.identifier isEqualToString:@"InboxSegue"]){ InboxViewController *controller = (InboxViewController *)segue.destinatio

我有一个奇怪的问题,我无法设置目标视图的属性。我已经做了一千次了。 代码如下:

- (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的无法识别的选择器'

检查您是否已将“InboxSegue”正确分配给特定控制器,当
segue.destinationViewController
提供其他控制器时,会发生此错误,而预期的控制器

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

    }

}

你能发布你的完整代码吗?我们想看看你的ERA是什么。在你定义ERA的firstviewcontroller中,我已经发布了第一个控制器。谢谢。您的inboxviewcontroller选择的标记和firstviewcontroller选择的标记是否属于同一类型?@Kathiravan G,非常感谢您的帮助。德斯德诺娃给出了有效的答案。谢谢你,非常感谢。我的问题是,我根本不知道导航控制器和普通的segues有什么区别。我对这个问题投了反对票。这个问题真的很糟糕吗?(如果是这样的话,我就不会再发布这样的帖子了)请注意,无论你把什么挂到你的segue端,它总是你的目标视图控制器。它可以是导航控制器、选项卡栏控制器或任何其他视图控制器类型。可视视图控制器是另一个故事,具体取决于父控制器。类引用有关于如何访问任何类型的项的详细信息。好的,从现在开始我将花更多的时间来查看引用。干杯