如何将数据传递给嵌入在导航控制器中的集合视图控制器

时间:2015-11-27 12:32:02

标签: ios objective-c segue

我想将MainViewController中的整数值传递给CollectionViewController中嵌入的UINavigationViewController。代码在MainViewController.m方法中的prepareForSegue文件中编写。我收到警告:

  

不兼容的指针类型初始化' CollectionViewController *'表达式为' UIViewController * _Nullable'

警告用于代码:

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

CollectionViewController *collectionVC = [navController topViewController];

对于传递整数我正在使用:

[collectionVC setReceivedCategoryId:categoryIdToSend];

2 个答案:

答案 0 :(得分:2)

UINavigationController' topViewController方法返回UIViewController对象,如Apple documentation所示。 投射对象,它将工作。

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

// Add the explicit cast
CollectionViewController *collectionVC = (CollectionViewController*)[navController topViewController];

答案 1 :(得分:1)

[navController topViewController];会返回UIViewController个对象。但我们知道它是CollectionViewController。所以我们添加一个类型转换,如下所示:

CollectionViewController *collectionVC =(CollectionViewController*) [navController topViewController];