自定义UIView子类作为UIViewController属性

时间:2010-02-09 01:54:16

标签: iphone objective-c properties uiview uiviewcontroller

我原本以为我在整个视图控制器模型上实际上有一个非常好的处理,但对我来说似乎没有什么意义。我的主要问题是添加自定义UIView子类作为UIViewController子类的属性

每当我将UIView子类的有效实例分配给该属性时,没有任何反应或代码崩溃。

这是一个快速概述:

  • 主控制器进入自己的视图并加载正常。
  • 然后我可以通过实例化它和addSubview:ivar等将这个UIView子类添加到主控制器中。那里没有问题......

但是......如果我想将这个自定义UIView作为ViewController的属性,那似乎不起作用。任何人都能解释一下吗?

以下是代码摘要:

@interface CustomUIView : UIView { }

@interface MainViewController : UIViewController {
    CustomUIView *someOtherView;
}

@property (nonatomic, copy)  CustomUIView *someOtherView;

...

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor greenColor];  // the default controller view

    CustomUIView *tmpView = [[CustomUIView alloc] initWithFrame:CGRectMake(0,0,320,480)];

    [self.view addSubview:tmpView];     // this works

    self.someOtherView = tmpView;       // this does NOT work and
    self.view = self.someOtherView;     // ultimately, this is what i'm after

    [tmpView release];

}

非常感谢这个美妙的社区!

1 个答案:

答案 0 :(得分:8)

您无法复制UIView。或UIView子类。请尝试保留。