自定义标签栏,包含详细信息

时间:2016-11-08 10:23:55

标签: ios swift uiviewcontroller ios8 tabbarcontroller

我正在根据本教程创建自定义标签栏:https://github.com/codepath/ios_guides/wiki/Creating-a-Custom-Tab-Bar

一切都很好但是当我想从某个视图控制器转到它的“详细信息视图”时,详细信息视图会在底部栏中显示菜单。这种行为是合乎逻辑的,因为我正在推动一个新的视图控制器,但为了保持底部栏始终可见并且功能正常,我将如何做呢?

我正在使用segue,因为我需要传递一些数据。我需要自定义栏,因为使用Apple的功能和外观很难实现。

任何提示或建议? 感谢

修改 这里所有“标签”都运行良好但是当你点击一行时我会导航到“详细信息”视图

enter image description here

Details view

在详细信息视图中,底部栏不可见。

2 个答案:

答案 0 :(得分:0)

您是否尝试过设置hidesBottomBarWhenPushed = false以获取详细信息视图?

答案 1 :(得分:0)

解决了它。而不是打电话       self.performSegueWithIdentifier("detailsViewSegue", sender: self)

in

tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 我将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()
            }
        }
    }