【问题标题】:Swift 3 use multi .swift fileSwift 3 使用多个 .swift 文件
【发布时间】:2017-08-29 18:25:59
【问题描述】:

您好,我需要帮助在 Xcode 中通过 swift 3 使用具有不同视图控制器的多个 .swift 文件。

举例说明我的情况,我有:

  • ViewController.swift
  • ViewController2.swift
  • 在我的 StoryBoard 2 视图中:视图控制器 A,视图控制器 B

如何从视图控制器 B 中的开关显示或隐藏视图控制器 A 中的标签

ViewController.swift 用于 View Controller A,ViewController2.swift 用于 View Controller B

谢谢回答。

【问题讨论】:

    标签: ios swift xcode view controller


    【解决方案1】:

    您可以尝试制作一个 var 来检查开关的状态,然后使用 prepareforsegue 函数传递该 var。 然后使用 if 语句进行检查。

    if switchcondition == true {
    
      lbl.isHidden == true      
    
    } else if switchcondition == false {
    
      lbl.isHidden == false
    
    }
    

    其中 switchCondition 是您的 var 而 lbl 是您的标签出口。

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "segue" {
          var switchCondition = false
          //I'll keep it false by default
        }
    } 
    

    别忘了:

    self.performSegue(withIdentifier: "segue", sender: self)
    

    【讨论】:

    • 你有什么不明白的可以详细告诉我吗?
    【解决方案2】:

    您可以在ViewControllerA 中有一个static 变量来决定是否显示标签。

    ViewControllerA

    static var showLabel = false
    
    func viewDidAppear(_ animated: Bool) {
        label.hidden = !showLabel
    }
    

    ViewControllerB

    ViewControllerA.showLabel = true
    

    【讨论】:

    • 你能更清楚地解释一下我必须做什么吗?我不太懂
    • @ValentinCocq 基本上只是复制代码。第一个进入您的ViewControllerA。第二个代码是您要更改状态的位置。如果你还是不明白,我还有什么要说清楚的地方? :)
    • 好的,谢谢,我会试试的。 PS:ViewControllerA 不是故事板 .swift
    • 我有一个问题,当我更改视图时,开关回到关闭位置
    • 试试switch.setOn(ViewControllerA.showLabel, animated: false), @ValentinCocq
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    相关资源
    最近更新 更多