2014-09-19 65 views
0

我嘗試創建我的第一個iPhone應用程序。我在Storyboard中創建了兩個不同的視圖。 「主」和「詳細」視圖。我將Master View嵌入到導航控制器中。 Master View由UITableView和自定義單元組成。用segue更改視圖

我嘗試在點擊單元格時顯示細節視圖。但我不明白怎麼做......我在單元格和細節視圖之間創建了一個「視圖細節」,但是當我點擊單元格時,沒有任何反應。

感謝您的幫助。

+0

有一個Xcode樣品確實你正在嘗試做同樣的事情。只要給它一張支票。你可以在** XCode> File> New> Project ...> iOS> Application> Master Detail Application **中找到它。 – jMelnik 2014-09-19 18:27:15

+0

我爲我的應用程序使用了Master Detail應用程序。一切工作,直到我創建我的自定義UITableViewCell。 – ThibaultV 2014-09-19 19:34:24

+0

檢查它與您的問題類似:http://stackoverflow.com/a/28428558/4935811 – 2017-02-23 04:49:32

回答

0

將UITableView嵌入到導航控制器中。

0

你的表中有「didSelectRowAtIndexPath」方法嗎?

+0

是的,我寫了'[self performSegueWithIdentifier:@「showDetail」sender:self];' – ThibaultV 2014-09-19 19:31:42

+0

@ThibaultV,你不應該如果您將細胞從細胞轉移到下一個控制器,則調用performSegue - 選擇細胞時應該自動調用它。 – rdelmar 2014-09-19 19:51:53

+0

試試這段代碼: 'VIEWCONTROLLERTHATUNEEDTOPUSH * viewController = [[VIEWCONTROLLERTHATUNEEDTOPUSH alloc] init]; [self.navigationController pushViewController:viewController animated:YES];' 不要忘記爲您的主視圖控制器更改VIEWCONTROLLERTHATUNEEDTOPUSH! – 2014-09-19 20:23:21

0

您可以使用此解決方案here嘗試:

的問題是,你沒有正確處理您的數據。如果你看看你的currentResponse數組,你會看到它擁有NSDictionaries,但是在你的prepareForSegue中,你試圖將一個NSDictionary轉換爲NSArray,這會導致應用程序崩潰。

變化RestaurantViewController到NSDictionary中的數據變量和更改prepareForSegue通過一個一個的NSDictionary

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
if let cell = sender as? UITableViewCell { 
    let i = redditListTableView.indexPathForCell(cell)!.row 
    if segue.identifier == "toRestaurant" { 
     let vc = segue.destinationViewController as RestaurantViewController 
     vc.data = currentResponse[i] as NSDictionary 
    } 
} 
}