我想重复header
部分所有view controller scene
。标题部分表示绿色视图和标签(" AMAR LIFE")
这是我的第一个视图控制器场景
这是我的第一个视图控制器文档大纲
答案 0 :(得分:3)
子类UITabBarController。使绿色视图成为标签栏控制器主视图的 。每当选定的视图控制器发生变化(或其他任何事情发生)时,请将绿色视图保持在前面。 (更好的是,将绿色视图设为图层,而不是视图,并为其提供更高的z位置,以便它自动浮动在所有子视图的前面。)
答案 1 :(得分:1)
请尝试以下步骤,以便在所有视图中显示您的标题。
第1步:将navigationController拖到storyBoard中并删除tableView rootViewcontroller随附naviagtionController。将您的NavigationController连接到tabBarController.Now,NavigationController可用于您的所有视图。
注意:您的storyBoard布局应该如下图所示..
第2步:在FirstTabBarController中实现以下代码。
override func viewDidLoad() {
super.viewDidLoad()
// Apply transparency to NavigationBar.
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
//Setting up scanView background
let barView = UIView(frame: CGRect(x:0, y:0, width:view.frame.width,height: (navigationController?.navigationBar.frame.height)! + UIApplication.shared.statusBarFrame.height))
barView.backgroundColor=UIColor.green // set any colour you want..
barView.layer.borderColor = UIColor.black.cgColor
barView.layer.borderWidth = 3
navigationController?.navigationBar.addSubview(barView)
//Setting up labelView
let label = UILabel()
label.frame = CGRect(x:25, y:5, width:view.frame.width - 50 , height:((navigationController?.navigationBar.frame.height)! + UIApplication.shared.statusBarFrame.height) - 10)
label.text = "AMAR LIFE"
label.textAlignment = .center
label.textColor = .black
label.font = UIFont(name: "HelveticaNeue-medium", size: CGFloat(40))
label.layer.borderColor = UIColor.black.cgColor
label.layer.borderWidth = 3
barView.addSubview(label)
}
输出:
答案 2 :(得分:-2)
您需要在每个视图控制器中添加以下方法
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.navigationController?.isNavigationBarHidden = false
self.navigationController?.navigationBar.setBackgroundImage(#imageLiteral(resourceName: "123"), for: .default)
self.title = "Hi I am tittle"
}
此外,如果您想避免代码重复并且做得更好,只需创建一个父UIview并在其中编写此方法,然后在所有其他视图中继承它。然而,两种解决方案都可以 您可以根据需要更改标题和图像。 感谢