简体   繁体   English

将字符串传递给unwind segue和/或dismissViewController SWIFT

[英]Passing string through unwind segue and/or dismissViewController SWIFT

VC1 has 1 button F1 which >segues> to VC2 which has 2 buttons Qd and Qs VC1有1个按钮F1 ,它>>到VC2,它有2个按钮QdQs

Qd is connected to dismissViewController Qd连接到dismissViewController

Qs is connected to unwindSegue Qs与unwindSegue相关联

My Objective : learn to change F1 's image to "Qd" image through dismissViewController, and learn to change F1 's image to "Qs" image through unwindSegue. 我的目标 :学习通过dismissViewController将F1的图像更改为“Qd”图像,并学习通过unwindSegue将F1的图像更改为“Qs”图像。

Question1 : Why is Qd (VC2) NOT setting F1String(VC1) = F1Card(VC2)? 问题1 :为什么Qd (VC2)没有设置F1String(VC1)= F1Card(VC2)?

Question2 : How do I apply this to unwindSegue for Qs ? 问题2 :如何将此应用于unwindSegue for Qs

VC1 (Table) VC1(表)

import UIKit

class Table: UIViewController {
@IBOutlet weak var F1: UIButton!
var F1String:String = "Default"

override func viewDidLoad() {
    super.viewDidLoad()

    let F1Image = UIImage(named: "\(F1String)") as UIImage!
    F1.setImage(F1Image, forState: UIControlState.Normal)
}

@IBAction func unwindFromFlop(unwindSegue:UIStoryboardSegue) {

}
}

VC2 (FlopPop) VC2(FlopPop)

import UIKit

class FlopPop: UIViewController {
var F1Card = String()

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    var DVC : Table = segue.destinationViewController as Table
    DVC.F1String = F1Card
}
@IBAction func Qd(sender: AnyObject)
{
    let F1Card = "Qd"
    self.dismissViewControllerAnimated(true, completion: nil)
}
}

THANKS DDD 谢谢DDD

This solved the unwind part 这解决了展开部分

VC1 VC1

import UIKit

class Table: UIViewController {
@IBOutlet weak var F1: UIButton!
var message : NSString = "Default"

@IBAction func unwindFromFlop(unwindSegue:UIStoryboardSegue) {
    let F1Image = UIImage(named: "\(message)") as UIImage!
    F1.setImage(F1Image, forState: UIControlState.Normal)
    checkLabel.text = message
}
}

VC2 VC2

import UIKit

class FlopPop: UIViewController {
var F1Card = String()

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    F1Card = segue.identifier!

    let DVC = segue.destinationViewController as Table
    DVC.message = F1Card

}
}

I think it had to do with using NSString to pass the data instead of just a string. 我认为这与使用NSString传递数据而不仅仅是一个字符串有关。

If anyone can help to explain why this is I'd greatly appreciate it and I'm still hoping to learn the work around for dismissViewController. 如果有人可以帮助解释为什么这是我非常感谢它,我仍然希望学习dismissViewController的工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM