gpt4 book ai didi

ios - 无法在自定义单元格中使用 UISwitch 以移动到新 Controller

转载 作者:行者123 更新时间:2023-11-28 08:31:11 24 4
gpt4 key购买 nike

我正在尝试使用 UISwitch 上的更改事件从当前的 ViewController 移动到新的 ViewController。我的 UISwitch 已在我的 UITableView 中的自定义单元格的自定义 View 中注册。该操作在我的 View Controller 中注册并调用类,如下所示

import UIKit

public class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var operatedSwitch: UISwitch!

@IBAction func operatedSwitchChange() {
updateValveOps.valveUpdate()
}

当它到达我的 ViewController 中的类时,它会调用主类中的一个方法,该方法应该移动到我的新 ViewController 中,如下所示

import UIKit

class updateValveOps {
class func valveUpdate() {
let valveOps = ValveOperationsController()
valveOps.ValveOpsUpdate()
}
}

class ValveOperationsController: UIViewController {
.
.
func ValveOpsUpdate() {
performSegueWithIdentifier("ValveOpsToUpdateSegue", sender: nil)
}

但是,这会导致 Sigabrt 错误。我也尝试过从当前 View 推送到新的 View Controller ,但由于某种原因它返回到调用 View Controller !我做错了什么?

最佳答案

在你的 @IBAction func operatedSwitchChange() { .. } 中试试这个

UIApplication.sharedApplication().keyWindow?.visibleViewController()?.performSegueWithIdentifier("ValveOpsToUpdateSegue", sender: nil)

并将此扩展添加到您的项目中(将其复制粘贴到新的 swift 文件中):

public extension UIWindow {

func visibleViewController() -> UIViewController? {
if let rootViewController: UIViewController = self.rootViewController {
return UIWindow.getVisibleViewControllerFrom(rootViewController)
}
return nil
}

class func getVisibleViewControllerFrom(vc:UIViewController?) -> UIViewController? {
if vc == nil {
return nil
}

if let navigationController = vc as? UINavigationController {
return UIWindow.getVisibleViewControllerFrom( navigationController.visibleViewController)
} else if let tabBarController = vc as? UITabBarController {
return UIWindow.getVisibleViewControllerFrom(tabBarController.selectedViewController)
} else {
if let presentedViewController = vc?.presentedViewController {
return UIWindow.getVisibleViewControllerFrom(presentedViewController.presentedViewController)
} else {
return vc
}
}
}
}

关于ios - 无法在自定义单元格中使用 UISwitch 以移动到新 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845740/

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