我使用這個代碼,以使一個的tableview細胞去到一個新的觀點:performSegueWithIdentifier將錯誤的觀點
[self performSegueWithIdentifier:@"hello" sender:self];
但每當我建立並運行它,然後單擊單元格,它帶給我以完全不同的/不相關的觀點。 任何想法?
我使用這個代碼,以使一個的tableview細胞去到一個新的觀點:performSegueWithIdentifier將錯誤的觀點
[self performSegueWithIdentifier:@"hello" sender:self];
但每當我建立並運行它,然後單擊單元格,它帶給我以完全不同的/不相關的觀點。 任何想法?
在故事板中檢查您的segue的標識符。另外,如果您有多個賽段,請檢查是否將正確的賽段連接到正確的按鈕和正確的視圖。
我檢查了標識符,它與在「performSegueWithIdentifier」行中調用的標識符相同。我現在只是使用DidSelectRowAtIndexPath – Alan 2012-08-10 03:44:34
請嘗試下面的代碼: – 2012-08-10 10:08:29
嘗試在TableViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"yourSegueIdentifierName"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];
[[segue destinationViewController] setDetailItem:object];
}
}
這將偵聽SEGUE,請檢查SEGUE的標識符和你選擇的行下面的代碼。然後它會在選定的行中執行對象。 它還允許您在一個視圖中輕鬆地創建多個賽段,如果您需要它,您只需爲不同的賽格標識添加「if」功能。
如果您在TableViewController中只使用一個segue,實際上並不需要標識符,但無論如何它都是非常好的做法,以防萬一您希望稍後在代碼中添加其他segue階段。
假設我把它放在正確的地方,即使我替換tableview名稱和這樣,我應該把這個? – Alan 2012-08-12 03:01:51
你把它放在你的TableViewController窗口的實現文件(.m)中,你不需要改變代碼中的任何東西,你可以複製粘貼我寫的東西,除了標識你的segue的字符串。故事板,你需要給你的segue一個名字,並且在我寫上「yourSegueIdentifierName」的字符串中寫下那個名字。 de會將你點擊的單元格的細節交給下一個視圖,假設你想要的是這個。如果你想得到更詳細的答案,你必須在這裏複製粘貼你的代碼,所以我確切地知道你想要什麼。 – 2012-08-12 08:52:13
感謝您的回覆,這裏是我的代碼執行文件 http://pastebin.com/ KDzHYfQV – Alan 2012-08-13 02:49:30
仔細檢查故事板中您的segue的標識符? – aforaudrey 2012-08-09 22:54:30
已經做到了,沒有運氣:( – Alan 2012-08-10 03:45:21
你有什麼機會不小心將兩個segues命名爲相同? – 2012-08-10 21:15:26