繁体   English   中英

无法使用prepareForSegue传递数据:

[英]Can't pass data with prepareForSegue:

我试图将数据从一个视图控制器中的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):

 - (void)viewDidLoad
 {

NSLog(@"%@", self.detailItem.data.lyrics);

    [super viewDidLoad];
 } 

并且我确认detailItem中存在属性data.lyrics,因为我们正在传递一个SongDoc对象,并且我在之前的prepareForSegue中输出了SongDocs内容。

我的问题是在第二个视图控制器中,我收到一条错误消息,说详细信息未声明属性歌词

但是我知道这是不正确的,为什么会这样呢?

任何帮助将是巨大的感谢:)

@class SongDoc;

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

#import "SongDoc.h"

而是让编译器知道该类声明了哪些属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM