Objective c Can';t使用prepareForSegue传递数据:

Objective c Can';t使用prepareForSegue传递数据:,objective-c,uistoryboard,Objective C,Uistoryboard,我试图将数据从一个视图控制器中的UITextView传递到另一个视图控制器中的UITextView。我的应用程序使用故事板 在第一个视图控制器中,我说: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { LyricKaraokeViewController *karaokeController = segue.destinationViewController; karaokeController.hid

我试图将数据从一个视图控制器中的UITextView传递到另一个视图控制器中的UITextView。我的应用程序使用故事板

在第一个视图控制器中,我说:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
LyricKaraokeViewController *karaokeController = segue.destinationViewController;
karaokeController.hidesBottomBarWhenPushed = YES;
SongDoc *song = [[SongDoc alloc] initWithTitle:@"Title" lyrics:@"Test" thumbImage:nil];
karaokeController.detailItem = song;
NSLog(@"%@", karaokeController.detailItem.data.lyrics); 
}
NSLog输出适当的文本

在我的第二个视图控制器中,我声明此接口:

@class SongDoc;

@interface LyricKaraokeViewController : UIViewController

@property (nonatomic, retain) SongDoc * detailItem;

@end
此实现(为了简单起见,仅显示viewDidLoad):

我确认detailItem中有properties data.Lyps,因为我们正在传入一个SongDoc对象,我在prepareForSegue中输出了SongDoc内容

我的问题是,在第二个视图控制器中,我收到一个错误,表示详细信息项没有声明属性

但我知道这是不真实的,为什么会这样

任何帮助都很好,谢谢:)

只告诉编译器
SongDoc
是一个类,但不读取实现文件。你必须

#import "SongDoc.h"

相反,这样编译器就知道类声明了哪些属性。

您应该发布准确的错误消息以及用它标记的行。还有一个问题:如果你收到错误,你如何运行应用程序并通过NSLogs确认一切正常?@AdamDahan:不客气。-我注意到你还没有接受任何答复。你应该通过点击答案左边的复选框来接受答案。非常感谢,我甚至没有意识到有一个复选框按钮。。新堆栈:)
@class SongDoc;
#import "SongDoc.h"