2016-11-08 158 views
-1

我根據這個教程創建自定義標籤欄:https://github.com/codepath/ios_guides/wiki/Creating-a-Custom-Tab-Bar自定義標籤欄,詳情查看

一切都很好,但是當我想從某個視圖控制器Segue公司以它的「詳細信息查看」,細節視圖覆蓋了帶菜單的底部欄。這種行爲是合乎邏輯的,因爲我正在推新視圖控制器,但是爲了保持底部欄始終可見並且功能正常,我該如何做?

我爲此使用了segue,因爲我需要傳遞一些數據。我需要自定義欄,因爲使用Apple的功能和外觀很難實現。

任何提示或建議? 感謝

編輯: 這裏所有的「標籤」運作良好,但是當你在一排點擊我瀏覽到「詳細信息」查看

enter image description here

Details view

在細節視圖,底部欄不可見。

+0

是否設置了步驟9中提到的contentView – Joe

+0

是的,我已經完成了所有教程我的步驟工作正常。這個問題是與詳細信息視圖,這不包括在本教程:( – repoguy

+0

可以發佈你的問題的一些截圖 – Joe

回答

0

你有沒有試過設置hidesBottomBarWhenPushed = false的詳細視圖?

+0

我沒有使用UITabBarController。它全部基於UIViewControllers,我的底部條僅僅是一個UIView沒有hidesBottomBarWhenPushed屬性 – repoguy

+0

容器視圖只不過是一個UIView,我用它來顯示每個選項卡的UIViewControllers。問題可能是如何從視圖控制器在容器視圖中導航到另一個視圖控制器與segue,這樣兩個有相同的尺寸? – repoguy

0

解決了它。相反,在

tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 調用
self.performSegueWithIdentifier("detailsViewSegue", sender: self)

的我添加DetailsView控件以層次結構如下所示:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let detailsView = storyboard.instantiateViewControllerWithIdentifier("contactDetailsView") 
addChildViewController(detailsView) 
detailsView.view.frame = CGRectMake(self.view.frame.width, 0, self.view.frame.width, self.view.superview!.frame.height) 
self.view.addSubview(detailsView.view) 
UIView.animateWithDuration(0.25) { 
     detailsView.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.superview!.frame.height) 
} 
detailsView.didMoveToParentViewController(self) 

那麼當用戶點擊後退箭頭我做的:

@IBAction func goBackButtonAction(sender: UIButton) { 
     self.willMoveToParentViewController(self) 
     UIView.animateWithDuration(0.25, animations: { 
      self.view.frame = CGRectMake(self.view.frame.width, 0, self.view.frame.width, self.view.frame.height) 
      }) { (completed) in 
       if completed { 
        self.view.removeFromSuperview() 
        self.removeFromParentViewController() 
      } 
     } 
    }