如何在IBOutlet上创建可配置属性

时间:2016-11-02 01:14:04

标签: ios swift xcode

我的SegmentedPageViewController有一个自定义类。该视图控制器包含一个IBOutlet,它是segmentedControl。我创建了两个方法来配置高度和字体,以便我可以在prepareForSegue()中的视图控制器中调用这些属性。

在我的自定义课程中:

func setHeightConstraint(height:CGFloat) {

  segmentedControl.heightAnchor.constraintEqualToConstant(height).active = true
}

func setTitleTextAttributes(dictionary:[NSObject: AnyObject]) {
    segmentedControl.setTitleTextAttributes(dictionary, forState: .Normal)
}

在我的其他视图控制器的prepareForSegue方法中:

segmentedPageViewController.setHeightConstraint(25.0)
segmentedPageViewController.setTitleTextAttributes(NSDictionary(object: UIFont(name: "HelveticaNeue", size: 12.0)!, forKey: NSFontAttributeName) as [NSObject : AnyObject])

我面临的问题是它在上面的" setHeightConstraint"方法,因为segmentControl是零。如何配置它以便我引用正确的segmentControl?

1 个答案:

答案 0 :(得分:0)

在分段控制器中创建一个属性,只保存您想要使用的值,而不是IBOutlet。在准备segue时将您的值传递给这个新属性,然后让目标控制器使用它在viewDidload(或更高版本)中设置自己出口的约束。