簡體   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