gpt4 book ai didi

ios - 标签栏上的自定义按钮呈现模态视图的最佳方式

转载 作者:行者123 更新时间:2023-11-30 11:24:33 25 4
gpt4 key购买 nike

我是 Xcode/Swift 新手。我有一个中心按钮,我想从当前 View (选项卡)呈现一个模态视图。

我已经为 UITabBar 实现了一个自定义类,它根据此 guide 添加该按钮。

这个 UITabBar 自身没有我可以找到的 View Controller ,因此当我尝试呈现 View 时出现错误。错误:“MainTabBar”类型的值没有成员“present”

有没有办法让这个按钮在当前 View 中呈现模式?我不确定如何从这个自定义类到达当前 View 。

我应该将按钮的 addTarget 指向 uitabbar Delegate并在我的其他 View 中关注它?

我应该停止这样做,而只是使用一个选项卡来执行选项卡,该选项卡会在不同 View 的 ViewDidAppear() 中拉出我的模态视图吗?我认为如果我这样做,我就失去了弹出或关闭返回到最后一个 View 的能力。

这是我正在使用的自定义 UITabBar 类。

class MainTabBar: UITabBar {

private var middleButton = UIButton()

override func awakeFromNib() {
super.awakeFromNib()
setupMiddleButton()
}

func setupMiddleButton() {
middleButton.frame.size = CGSize(width: 70, height: 70)
middleButton.backgroundColor = .blue
middleButton.layer.cornerRadius = 35
middleButton.layer.masksToBounds = true
middleButton.center = CGPoint(x: UIScreen.main.bounds.width / 2, y: 0)
middleButton.addTarget(self, action: #selector(test), for: .touchUpInside)
addSubview(middleButton)
}

@objc func test() {
let vc = createController()
vc.modalTransitionStyle = .crossDissolve
self.present(vc, animated: true, completion: nil)
}
}

最佳答案

找到了更好的implementation 。创建一个继承自 UITabBarController 的自定义类并将其命名为 MainViewController。

在该 Controller 中而不是在 MainTabBar 自定义类中设置中间按钮。

自己现在有成员在场。

  @objc func test() {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc =
storyboard.instantiateViewController(withIdentifier: "createModal") as! createController

self.present(vc, animated: true, completion: nil)
}

https://github.com/drrost/Custom-Tabbar-Cetner-Button

关于ios - 标签栏上的自定义按钮呈现模态视图的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50899804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com