作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要一个开关来更改 slider 的最小和最大范围。我通过将开关设置为一个 Action 并调用 salesPriceSlider.maximumValue 让它在同一个 ViewController 上工作,但是我将开关移动到我的 settingsViewController 并且当我在 prepareforSegue 中实现相同的技术时它没有通过?
var newPriceMin = Float(0)
var newPriceMax = Float(0)
@IBAction func priceSwitch(sender: UISwitch) {
newPriceMax = 3000000
newPriceMin = 1000000
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var destViewController: FirstViewController = segue.destinationViewController as! FirstViewController
destViewController.salesPriceSliderOutletValue.maximumValue = newPriceMax
destViewController.salesPriceSliderOutletValue.minimumValue = newPriceMin
}
最佳答案
作为一般规则,尝试从外部操作 View Controller 的 View 是一个坏主意。您应该将 View Controller 的 View 视为私有(private) View 。
您要做的是在另一个 View Controller 中为所需的最大值和最小值设置属性,然后在您的 viewDidLoad 方法中,将这些属性应用到您的 slider 。
您可以为最大和最小设置分配默认值,以便在您不从外部更改它们时它们具有合理的值。
您还可以将 didSet 方法添加到最大值和最小值,如果在 View Controller 在屏幕上时从外部更改 slider 最大/最小值,它们将“实时”更改,尽管这在 iOS 中并不常见 View Controller 在屏幕上时通常具有控制权。
关于ios - 如何从 Swift 中另一个 ViewController 上的开关发送 slider 的新最大/最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29652216/
我是一名优秀的程序员,十分优秀!