【发布时间】:2021-10-12 16:14:47
【问题描述】:
我正在开发一个当前有 2 个视图控制器的应用程序。 在第二个视图控制器(我用于设置)中,我使用分段控件来确定游戏的难度。设置视图控制器的目的是更改主视图控制器标签。 我遇到的问题是我找不到将段控件的选定索引值从第二个视图控制器带到主视图控制器的方法。
这是设置屏幕视图控制器:
public class SettingsScreen: UIViewController {
@IBOutlet weak var levelPick: UISegmentedControl! // need to use this
@IBOutlet weak var operationPick: UISegmentedControl!
public override func viewDidLoad() {
super.viewDidLoad()
}
}
还有主要的:
class MainScreen: UIViewController {
@IBOutlet weak var displayText: UILabel!
public override func viewDidLoad() {
super.viewDidLoad()
}
// how it should work:
func setLevel() {
switch SettingsScreen().levelPick.selectedSegmentIndex {
// easy
case 0:
displaytext.text = "test1"
// medium
case 1:
displaytext.text = "test2"
// hard
case 2:
displaytext.text = "test3"
default:
break
}
}
@IBAction func Roll(_ sender: UIButton) {
setLevel()
}
}
【问题讨论】:
-
如何将更改更新到 UserDefault 变量并访问它。
-
@myjunk 究竟如何?我的帖子的重点是我找不到从第二个视图控制器访问变量的正确方法
-
这实际上取决于你的应用程序如何构建,有很多方法可以将变量传递给第二个 VC,有些比大多数更复杂,有些很简单。从您的代码示例中,也许可以使用一些简单的东西,我发布了一个您可以使用的示例答案。
标签: swift xcode uikit uilabel uisegmentedcontrol