在使用Swift关闭ViewController的过程中,如何将值从ViewController B传递给ViewController A?

Jackios

我的情况是,我试图在关闭视图控制器的过程中将值从传递ViewController BViewController A在这里,我使用了以下代码,但无法获取中的值ViewController A

ViewController B

// protocol used for sending data back
protocol isAbleToReceiveData {
    func pass(data: String)  //data: string is an example parameter
}

// Making this a weak variable so that it won't create a strong reference cycle
var delegate: isAbleToReceiveData?

override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(true)
        self.delegate?.pass(data: "someData") //call the func in the previous vc
}

@IBAction func Click_action(_ sender: Any) {
        self.dismiss(animated: false, completion: nil)
        self.delegate?.pass(data: "someData") 
 }

ViewController A

class MyViewController: UIViewController, isAbleToReceiveData {

func pass(data: String) {
        print("USER: \(data)")
    }
}

// MARK: FromTouch Action
    @objc func fromTouchTapped(_ sender: UITapGestureRecognizer) {

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier: "ViewControllerB")
        viewController.modalTransitionStyle = .crossDissolve
        let navController = UINavigationController(rootViewController: viewController)
        present(navController, animated: true, completion: nil)
    }
尼库尼·库姆巴尼(Nikonj Kumbhani)

一切都对,您错过了ViewControllerA当下指派的代表ViewControllerB

if let VC_B = self.storyboard?.instantiateViewController(withIdentifier: "ViewControllerB") as? ViewControllerB{
    VC_B.delegate = self
    VC_B.modalTransitionStyle = .crossDissolve
    self.present(VC_B, animated: true, completion: nil)
}

注意

让viewController = self.storyboard?.instantiateViewController(withIdentifier:“ ViewControllerB”)为?ViewControllerB

让viewController = self.storyboard?.instantiateViewController(withIdentifier:“ ViewControllerB”)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将字符串值传递给我应用中的所有ViewController

如何将CLLocation传递给其他ViewController

如何使用Swift在iOS中关闭ViewController

Swift场景userActivity NSUserActivity传递给viewController

将数据传递给ViewController

将CoreData密钥传递给新的ViewController

如何在Swift 3.0中使用按钮将值从ViewController传递到另一个ViewController

如何将变量传递给嵌入在导航控制器中的 ViewController?

将数组从 viewController.swift 传递给 tableViewController.swift

Swift:将UITableViewCell标签传递给新的ViewController

将值传递给先前的 viewController ,未调用委托方法

将值传递给下一个viewController

从AppDelegate将对象传递给ViewController

在使用Swift展示新的Viewcontroller后,如何关闭以前的Viewcontroller?

如何将选定单元格的值传递给另一个ViewController?

将值从 swift viewcontroller 传递给 swiftui 然后再返回

如何将两个参数传递给下一个ViewController?

如何在Swift中关闭ViewController?

如何将数据从 ViewController 传递到标签栏 iOS 中的 ViewController?

如何将swift类导入到ViewController中?

如何将变体值传递给雪花存储过程中的插入语句

在Swift中将对象传递给ViewController

如何将CoreLocation值从一个VIewController传递到iOS中的AppDelegate?

无法将信息传递给以前的ViewController

将变量从AppDelegate传递给其他ViewController

如何使用 prepareForSegue (Swift 4, Xcode 9) 将 UIButton 的标签(一个 Int)传递给其他 ViewController

如何将值从一个 Viewcontroller 传递到另一个 struct swift

如何将注释的标题和描述数据传递给另一个 ViewController

将地理位置从Swift 2 ViewController传递给Javascript方法