从UIView子类访问属性

时间:2014-04-21 10:55:23

标签: ios uiview properties uiviewcontroller subclass

我有一个非常杂乱的显示器,我需要一个textField,9个UIlabels和9个UIButtons,其中的线条以倒置树形状连接它们。一切都是在代码上创建的。

为了从显示代码(例如约束和显示的所有内容)中整理我的UIViewController,我创建了UIView的子类。在UIView的这个子类中,我创建了所有标签和按钮作为公共属性。

在Storyboard上,我将self.view的类更改为我创建的新子类。当我运行模拟器时,它会正确显示我想要的内容。

当我尝试访问我创建的子类的公共属性时出现问题,例如当我尝试更改标签的文本时。当我在viewController上输入时,Xcode没有显示我之前设置的所有属性。

现在我不知道我的方法是否是直接错误的,或者我是否遗漏了什么。创建UIViewController的子类并从那里开始工作会更好吗?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

覆盖接口扩展中的view属性:

#import "CustomView.h"

@interface ViewController ()

@property (nonatomic, strong) CustomView *view;

@end

@implementation ViewController

// Only needed if you're not using storyboards
-(void)loadView
{
    self.view = [CustomView new];

    // Setup the rest of your view, e.g.
    self.view.customLabel.text = @"Custom label text";
}

@end

编辑:我刚刚注意到您使用的故事板,因此loadView并不需要,但我已将其保留为其他人的完整性

答案 1 :(得分:0)

你必须把它投射到你的视图。就像这个

MyViewClass *MyView=(MyViewClass*)self.view;


if ([self.view isKindOfClass:[MyViewClass class]]) {

    //do something like MyView.urProperty 

    // Don't forget to import the MyViewClass.h in the class        

}