我有一个非常杂乱的显示器,我需要一个textField,9个UIlabels和9个UIButtons,其中的线条以倒置树形状连接它们。一切都是在代码上创建的。
为了从显示代码(例如约束和显示的所有内容)中整理我的UIViewController,我创建了UIView的子类。在UIView的这个子类中,我创建了所有标签和按钮作为公共属性。
在Storyboard上,我将self.view的类更改为我创建的新子类。当我运行模拟器时,它会正确显示我想要的内容。
当我尝试访问我创建的子类的公共属性时出现问题,例如当我尝试更改标签的文本时。当我在viewController上输入时,Xcode没有显示我之前设置的所有属性。
现在我不知道我的方法是否是直接错误的,或者我是否遗漏了什么。创建UIViewController的子类并从那里开始工作会更好吗?
非常感谢任何帮助。
答案 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
}