iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
Mobile Development

Xcode x Swift Vibe coding進階開發之旅系列 第 29

Xcode x Swift Vibe coding進階開發之旅 第二十九天 客製化tarbar(6) 不如意的AI

  • 分享至 

  • xImage
  •  

說明

將剩下程式碼的部分交給AI看看。/images/emoticon/emoticon08.gif

指令

幫我完成自定義tarbar所需要的剩下程式 所有畫面部分皆已設定與建立 btnViewController當作btn tarbarViewController是taarbar 。

結果

可能是因為我下的指令不是很好,所以修改後的結果都不進人意,我在下一章慧總結一些問題及原因,並且以下會把剩餘的完整可以跑的程式放出
/images/emoticon/emoticon02.gif /images/emoticon/emoticon04.gif /images/emoticon/emoticon03.gif

非AI完整版程式

btn

 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
        }
    }
}

tarbar

    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)")
    }
}

Main

 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())
           }


上一篇
Xcode x Swift Vibe coding進階開發之旅 第二十八天 客製化tarbar(5) 不如意的AI
系列文
Xcode x Swift Vibe coding進階開發之旅29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言