我在NavigationController中嵌入了TableViewController,也有在选择TableViewController中的单元格时应打开的DetailsViewController。
所以我打电话
override func viewDidLoad() {
super.viewDidLoad()
let circularPath = UIBezierPath(arcCenter: CGPoint.zero, radius: beginButton.bounds.midX, startAngle: -CGFloat.pi / 2, endAngle: 2 * .pi, clockwise: true)
pulsatingLayer.path = circularPath.cgPath
pulsatingLayer.strokeColor = UIColor.clear.cgColor
pulsatingLayer.lineWidth = 10
pulsatingLayer.fillColor = UIColor.red.cgColor
pulsatingLayer.lineCap = kCALineCapRound
let pulsatingView = UIView(frame: .zero)
view.addSubview(pulsatingView)
view.bringSubview(toFront: beginButton)
// use Auto Layout to place the new pulsatingView relative to the button
pulsatingView.translatesAutoresizingMaskIntoConstraints = false
pulsatingView.leadingAnchor.constraint(equalTo: beginButton.centerXAnchor).isActive = true
pulsatingView.topAnchor.constraint(equalTo: beginButton.centerYAnchor).isActive = true
pulsatingView.layer.addSublayer(pulsatingLayer)
animatePulsatingLayer()
}
我的导航栏设置:
navigationController?.pushViewController(DetailedViewController, animated: true)
DetailedViewController的导航栏被隐藏
navigationController?.navigationBar.isTranslucent = false
navigationController?.navigationBar.barTintColor = .green
当我看到将动画从TableViewController推送到DetailedViewController时,我可以看到Controller的一些内容,尽管导航栏对于此过渡而言是透明的,但它仍位于TableViewController后面。
我该怎么办?
答案 0 :(得分:-1)
这是编译器的未定义行为,您可以通过以下操作实现目标。
1)选择导航控制器->导航栏。 2)取消选中半透明属性。 (请参阅编辑器窗格)。 3)同时从情节提要中隐藏导航栏。 4)在需要的地方在视图控制器中显示导航栏。
//显示导航栏的代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.navigationController?.navigationBar.isHidden = false
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
self.navigationController?.navigationBar.isHidden = true
}