Was ich versuche zu tun, um eine segue für ein UISwitch
verwenden, so kann ich die phaselabel
auf dem ersten View-Controller namens UILabel
loszuwerden, wenn der Schalter ausgeschaltet ist.Mit Ein-/Ausschalter, sich in verschiedenen Viewcontroller von UILabel befreien
Auf den ersten Blick Controller ich habe:
import UIKit
class MeditationScreenViewController: UIViewController {
@IBOutlet var phaseLabel: UILabel!
func settingsDidChange(_ settings: MeditationSettings) {
meditationSettings = settings
session = MeditationSession(settings: settings, phaseChangedBlock: { [weak self] (phaseName) in
debugPrint("Entering phase: \(phaseName)")
guard let strongSelf = self else { return }
strongSelf.phaseLabel.text = phaseName
switch phaseName {
case "Breathe In":
strongSelf.circleAnimation.animate(direction: CircleAnimationView.Direction.expand, time: TimeInterval(strongSelf.meditationSettings.breathIn))
case "Breathe Out":
strongSelf.circleAnimation.animate(direction: CircleAnimationView.Direction.contract, time: TimeInterval(strongSelf.meditationSettings.breathOut))
default: break
}
}, timeChangedBlock: { [weak self] phaseTime, phaseTotal in
self?.timeLabel.text = "\(Int(phaseTime))/\(Int(phaseTotal))"
}, completion: { [weak self] in
debugPrint("Finished")
self?.timeLabel.text = ""
self?.phaseLabel.text = ""
self?.startStopButton.isSelected = false
})
}
override func viewWillAppear(_ animated: Bool) {
self.phaseLabel.text = name
}
Auf den zweiten View-Controller ich habe:
import UIKit
var name: String = ""
class MeditationSettingsViewController: UIViewController {
@IBOutlet var showCycleTitleLabel: UILabel!
@IBOutlet var showCycleTitleSwitch: UISwitch!
@IBAction func showCycleTitleChanged(_ sender: UISwitch) {
if (sender.isOn == true)
{
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "segue" {
if let sendToDetailViewController = segue.destination as? MeditationScreenViewController {
name =
}
else
{
name = ""
}
}
Ich hoffe, dies nicht zu kompliziert ist. Ich habe die var name: String = ""
in der zweiten Ansicht Controller verwendet, so dass ich es verwenden kann, um die phaseLabel
in der ersten Ansicht Controller zu greifen.
erhalten, was das Problem, was nicht funktioniert? Bitte geben Sie eine Beschreibung des gewünschten Verhaltens und des tatsächlichen Verhaltens in Ihrer Frage an. –