我有一个初始视图控制器(A),一个导航控制器链接到另一个视图控制器(B)。我如何通过segue将数组从A传递到Big?
这是我的segue代码。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"prepareForSegue: %@", segue.identifier);
if ([segue.identifier isEqualToString:@"severityInfo"]) {
UINavigationController *segueNavigation = [segue destinationViewController];
NSLog(@"%@",[[segueNavigation viewControllers]objectAtIndex:0]);
IncidentOverviewViewController *B = (IncidentOverviewViewController *)[[segueNavigation viewControllers]objectAtIndex:0];
B.BArray = feeds;
}
}
运行此代码后出现此错误:原因:'-原因:'找不到针对'severityInfo'的导航控制器。仅当源控制器由UINavigationController的实例管理时,才可以使用推送选择。
我已经在我的第二个视图控制器(事件视图控制器)中声明了该方法,如下所示:
-(void)setFeeds:(NSMutableArray*)received
{
BArray = received;
NSLog(@"feeds are%@", BArray);
}
我已经从我的初始视图控制器调用“视图控制器”的故事板上插入了标识符的情节提要中,此初始视图控制器已连接到导航视图控制器,然后从导航视图控制器连接到目标视图控制器称为“ incidentOverviewViewController”
尝试这个
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"severityInfo"]) {
UINavigationController *segueNavigation = [segue destinationViewController];
NSLog(@"%@",[[segueNavigation viewControllers]objectAtIndex:0]);
IncidentViewControllerClassName *B = (IncidentViewControllerClassName *)[[segueNavigation viewControllers]objectAtIndex:0];
B.BArray = feeds;
}
}
并在IncidentViewControllerClassName.h文件中
@property(nonatomic,strong) NSArray *BArray;
要操作Push segue,您需要将导航控制器嵌入到您要从中选择到另一个View Controller的View Controller中。因此,将您的第一个VC嵌入到导航控制器中。您的情节提要应该像这样
导航控制器->(RootVC)---> VC1(segue:severityInfo)--- NavigationControlelr-(root)VC2。
希望可以使您了解错误仍然存在的原因。要清除它,请将Embedd VC1或您要从中推入的视图控制器作为导航控制器的根VC。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句