Ios Xcode 5:在UITableViewController和UICollectionViewController之间不使用Segue传递数据

Ios Xcode 5:在UITableViewController和UICollectionViewController之间不使用Segue传递数据,ios,objective-c,xcode5,uitableview,pass-data,Ios,Objective C,Xcode5,Uitableview,Pass Data,我是法国人,很抱歉我的英语不好 我想传递数据NSString*cellSelected。 这是我的代码,谢谢你告诉我怎么回事:) 第二类: #import "PhotoCategoryViewController.h" @interface PhotoViewController : UICollectionViewController <UICollectionViewDataSource> @property (nonatomic, strong) NSStrin

我是法国人,很抱歉我的英语不好

我想传递数据
NSString*cellSelected
。 这是我的代码,谢谢你告诉我怎么回事:)

第二类:

#import "PhotoCategoryViewController.h"
   @interface PhotoViewController : UICollectionViewController     <UICollectionViewDataSource>

@property (nonatomic, strong) NSString *cellSelected;

- (void)viewWillAppear:(BOOL)animated
{

  NSLog(@"%@", self.cellSelected);
}
#导入“photocegoryviewcontroller.h”
@接口PhotoViewController:UICollectionViewController
@属性(非原子,强)NSString*cellSelected;
-(无效)视图将显示:(BOOL)动画
{
NSLog(@“%@”,自选择);
}
第一个NSLog是正确的,但第二个(传递的数据)返回:“nil”…:(

欢迎来到Stackoverflow:)

第二类:

 @property (nonatomic, readwrite, copy) NSString *cellSelected;
您需要使用
readwrite

指定要从外部写入
还有
copy
,为了确保
NSString
的值被复制,而不是被引用,这可能会丢失(这部分在过去的一年中让我非常头疼:)

您的代码没有意义,这里有几个问题:

  • 您如何介绍PhotoViewController?您的代码没有显示它…如果您使用segue来显示视图控制器,那么您将有两个实例
  • PhotoViewController类显示了一个@interface定义,但其中有一个已定义的方法,表明它是一个@implementation。您确定您发布的代码正确吗
  • 对于不可变的属性,应该使用“复制非强引用”
  • 您不需要声明UICollectionViewController符合UICollectionViewDatasource协议,默认情况下它会这样做
    嘿,谢谢你的回复!:)但我在PhotoViewController.h(第二个类)中添加了:“@property(nonatomic,readwrite,copy)NSString*cellSelected;”,并再次返回nil:(有争议,因为我说过默认情况下它是readwrite。这肯定不是问题的根源。@Viny76因为没有segue,所以从来不会显示ViewController,甚至不应该调用
    视图将出现
    。对于当前调试,请尝试用
    (void)替换
    (void)视图将出现:(BOOL)动画
    viewDidLoad
    @thedp与viewDidLoad相同:(他不必通过segue让它做他想让它做的事。我知道,但我不知道他是如何展示它的,因为他的代码没有展示出来。我只是指出,如果他使用segue来展示它,那么这就可以解释问题了。
    NSLog
    视图中将出现
    …如果有,它甚至会被调用吗没有segue?这就是为什么我想知道他是如何呈现它的。如果他正在推送或呈现他初始化的PhotoViewController实例,那么这应该是可行的,但是由于代码不在那里,我假设他可能正在处理一个案例,在这个案例中他正在初始化一个不同的视图控制器实例,然后呈现什么。然后c您是否解释了PhotoViewController的接口问题?它看起来像是一个实现文件,一直到#导入PhotoViewController.h文件。您确定要在PhotoViewController的公共标头中声明属性吗?如果从外部类设置,则不能使用类扩展名(您可以直接使用KVC,但这不是您正在做的事情)。
    
     @property (nonatomic, readwrite, copy) NSString *cellSelected;