gpt4 book ai didi

ios - 如何在 iOS 中暂停/恢复/取消事件

转载 作者:行者123 更新时间:2023-11-28 11:57:47 25 4
gpt4 key购买 nike

我有一个 UITabBarController,有时在 didSelectItem 委托(delegate)中我需要暂停事件并显示一个弹出窗口。如果用户确认事件继续,否则事件将被取消。这是我的代码:

class YC_TabBarController: UITabBarController {

var prevIndex: Int!
var exitAction: (()->Bool)?

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
self.prevIndex = self.selectedIndex

if self.prevIndex == 2 {

guard self.exitAction != nil else {return}
//pause
let isExitAccepted: Bool = self.exitAction!()
//if true -> resume
//if false -> prevent from switching tab

}

}
}

我该怎么做?请帮忙

最佳答案

您应该在第一个 View Controller 中向 UITabBarControllerDelegate 确认,如果在 shouldSelect viewController 中选择了所需的 View Controller ,则返回 false。然后你应该显示你的弹出 View 。在弹出 View 确定/确认按钮中,您可以更改 self.tabBarController

的选定 View Controller
class ViewController: UIViewController,UITabBarControllerDelegate {

override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
}

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if viewController is SecondViewController {
//show alert
return false
} else {
return true
}
}
func popUpOkAction(_ sender:UIButton) {
if let secVC = self.tabBarController?.viewControllers?.first(where: { $0 is SecondViewController }) {
self.tabBarController?.selectedViewController = secVC
}
}
}

If you want to perform this from multiple view controllers rather than firstViewController you can confirm to UITabBarControllerDelegate in YC_TabBarController itself.

关于ios - 如何在 iOS 中暂停/恢复/取消事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603401/

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