0

我正在尝试将数据从一个视图控制器中的 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 内容......

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

但我知道这是不真实的,为什么会发生这种情况?

任何帮助都会非常感谢:)

4

1 回答 1

1
@class SongDoc;

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

#import "SongDoc.h"

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

于 2012-11-11T11:04:58.710 回答