2013-11-22 121 views
-1

我不知道爲什麼,但它在我的項目中不起作用。我做的和100萬個教程完全一樣。視圖控制器之間傳遞數據 - 故事板segues

我有TableViewController與TableView和簡單的ViewController的細節。

,並詳細視圖控制器的.h文件,我宣佈:

@property (strong, nonatomic) NSString *testText; 

然後,在M檔下@implementation:

@synthesize testText; 

在TableViewController與名單上有:

//declared above: UIViewController *ticketDetailViewController = [segue destinationViewController]; 

    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
    NSString *destinationTitle = [[ticketArray objectAtIndex:[indexPath row]] pkey]; 
    [ticketDetailViewController setTitle:destinationTitle]; 

一切都很好。標題是正確的,所以必須有連接。但是,現在我想傳遞其他數據...所以我做了testText屬性,我想從TableViewController訪問,但我不能:/

錯誤說:Property'testText'not found on type'UIViewController *'

真正奇怪的是..調試過程中,有testText(如下面的屏幕上):

enter image description here

雖然當我要實現它..它沒有發現:

enter image description here

任何人都明白髮生了什麼事?

回答

2

變化:

UIViewController *ticketDetailViewController = [segue destinationViewController]; 

到:

TicketDetailViewController *ticketDetailViewController = (TicketDetailViewController *)[segue destinationViewController]; 

讓編譯器知道你正在使用什麼類型的類(它可以查找/完成相應的屬性)。

2

您需要將詳細視圖控制器聲明爲詳細視圖控制器,而不是UIViewController。

ViewController *ticketDetailViewController = [segue destinationViewController]; 

而不是

UIViewController *ticketDetailViewController = [segue destinationViewController]; 

此外,你應該與副本宣佈你testText財產,不具有較強。

@property (copy, nonatomic) NSString *testText; 
1
//declared above: UIViewController *ticketDetailViewController = [segue destinationViewController]; 

你不想類的UIViewController的視圖控制器,你要TicketDetailViewController或不過你命名的目的地的ViewController類。在那個類中,我假設你有一個名爲testText的屬性。

正確的聲明應該是

TicketDetailViewController *ticketDetailViewController = [segue destinationViewController]; 

其次,你不需要這個了。編譯器自動執行此操作。

@synthesize testText; 
相關問題