NSLayoutConstraint 常量的值总是 return 0 swift 3

Value of NSLayoutConstraint constant always return 0 swift 3

我正在使用 Swift 3 做一个 iOS 项目,我有一个 UIPagerViewController 并且我在其中一个 ViewController 的边框中创建了一个按钮在里面。之后,我向按钮添加了一个约束,如下图所示:

约束的值为-33

之后我为这个约束创建了关联的 IBOutlet :

@IBOutlet weak var rightButtonConstraint: NSLayoutConstraint!

我想在 ViewController 启动时以编程方式获取此值,所以我这样做了:

public var defaultRightConstraint: CGFloat = 0.0
    override func viewDidLoad() {
            super.viewDidLoad()
            defaultRightConstraint = rightButtonConstraint.constant // the constraint return 0
            print(" DEFAULT RIGHT CONSTRAINT \(defaultRightConstraint)") // Returns 0 and not -33 why ?
        }

但是我得到的值已经是 0 而不是 -33 我做错了什么?

编辑:

我试过了没有成功:

override func viewDidLayoutSubviews() {
        self.view.layoutIfNeeded()
        defaultRightConstraint = rightButtonConstraint.constant
        print(" DEFAULT RIGHT CONSTRAINT \(rightButtonConstraint.constant)")
    }

viewDidLoad()时,视图的子视图还没有布局。尝试将代码放在 viewDidLayoutSubviews() 中,或者在检查约束常量之前调用 view.layoutIfNeeded().