將剩下程式碼的部分交給AI看看。
幫我完成自定義tarbar所需要的剩下程式 所有畫面部分皆已設定與建立 btnViewController當作btn tarbarViewController是taarbar 。
可能是因為我下的指令不是很好,所以修改後的結果都不進人意,我在下一章慧總結一些問題及原因,並且以下會把剩餘的完整可以跑的程式放出
var stringTag: Int?
var buttonTapped: ((Int) -> ())? = nil
// MARK: - LifeCycle
override func awakeFromNib() {
super.awakeFromNib()
addview()
}
func setint(tag: Int, text: String) {
barbtn.tag = tag
//Imgv.image = image
}
@IBAction func didYapBtn(_ sender: Any) {
delegate?.didTapButton(tag: barbtn.tag)
print("Button tapped with tag: \(barbtn.tag)")
}
// MARK: - Extensions
fileprivate extension btnViewController {
func addview() {
if let loadview = Bundle(for: btnViewController.self).loadNibNamed("btnViewController",
owner: self,
options: nil)?.first as? UIView{
addSubview(loadview)
loadview.frame = self.bounds
}
}
}
var buttonTappen: ((Int) -> ())? = nil
let item = BottomItems.allCases
// MARK: - LifeCycle
override func awakeFromNib() {
super.awakeFromNib()
addview()
}
fileprivate extension tarbarViewController {
func addview() {
if let loadview = Bundle(for: tarbarViewController.self).loadNibNamed("tarbarViewController",
owner: self,
options: nil)?.first as? UIView{
addSubview(loadview)
loadview.frame = bounds
}
oneview.delegate = self
two.delegate = self
three.delegate = self
oneview.setint(tag: 0,text: "歷史紀錄")
two.setint(tag: 1,text: "Calibrate")
three.setint(tag: 2,text: "Glycemic Index")
}
}
extension tarbarViewController: btnViewDelegate {
func didTapButton(tag: Int) {
buttonTappen?(item[tag].rawValue)
print("Button tapped with tag: \(tag)")
}
}
private var onev = oneViewController()
private var twov = twoViewController()
private var threev = threeViewController()
var vc: [UIViewController] = []
var nowVC: Int = BottomItems.oneViewController.rawValue
override func viewDidLoad() {
super.viewDidLoad()
vc = [ onev, twov, threev ]
updateView(0)
tarbarview.buttonTappen = {
let page = $0
if $0 != self.nowVC {
self.pageChange(page: $0)
}
}
}
// MARK: - UI Settings
func pageChange(page: Int) {
self.updateView(page)
}
private func updateView(_ index: Int) {
nowVC = index
if children.first(where: { String(describing: $0.classForCoder) == String(describing: vc[index].classForCoder) }) == nil {
addChild(vc[index])
vc[index].view.frame = mainview.bounds
}
mainview.addSubview(vc[index].view ?? UIView())
}