2016-08-01 52 views
0

我正在創建一個顯示UITableView中的數據的應用程序。這些數據還包含位置信息,所以我想添加一個MapView來顯示這些數據。當用戶點擊一個UITableViewCel時,我需要延續到另一個UITableView來顯示詳細數據。我仍然希望使用與此詳細數據相同的數據顯示MapView,並且我仍然希望NavigationBar更新,即後退按鈕將用戶返回到第一個UITableView。如何將視圖添加到任何子視圖上方可見的UINavigationController

以圖像形式,使之更容易理解

DetailView of UINavigationController

我想製作一個UINavigationController的一個子類,並把容器的MapView下的,但我真的不知道哪裏去了從那裏。

+0

做的你把mapView和tableView放在UIViewController下面? –

+0

你可以用'self.title'在viewdidload方法中做到這一點,並通過prepareforsegue方法將數據傳遞給第二個vc。 –

+0

是的,但我希望能夠從第一個TableView繼續到第二個,同時仍然使用相同的MapView並能夠使用NavigationBar返回到第一個TableView。 –

回答

0

將VC0嵌入到導航控制器或UINavigationController的子類中。創建一個信息ViewController並將其推送到導航控制器上。

在你的特定情況下,你會想使用UITableViewDelegate的didSelectRowAt方法。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    // use indexPath.section and indexPath.row to use your data 
    let infoVC = yourInfoViewController() 
    infoVC.title = "Info Cell Name" 
    navigationController?.pushViewController(infoVC, animated: true) 
} 
的第一個評論後

編輯:

我不知道這樣做的最好辦法是,但你可以做到這一點的一種方法是:

  • 修改您的表格視圖基於正在顯示的內容,即:第一組數據或單元細節數據
  • 更新導航欄的標題並向左移動b每組數據的AR按鈕,你顯示
    • 其中的一個按鈕只會出現在單元格中詳細數據集,將其設爲您切換回顯示第一組數據
+0

但我想繼續使用相同的地圖視圖,所以我不必實例化一個新的。 –

相關問題