自定义UIView子类作为UIViewController属性

bit*_*her 2 iphone properties objective-c uiviewcontroller uiview

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

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

这是一个快速概述:

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

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

这是一个代码摘要:

@interface CustomUIView : UIView { }
Run Code Online (Sandbox Code Playgroud)

.

@interface MainViewController : UIViewController {
    CustomUIView *someOtherView;
}

@property (nonatomic, copy)  CustomUIView *someOtherView;
Run Code Online (Sandbox Code Playgroud)

...

- (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];

}
Run Code Online (Sandbox Code Playgroud)

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

Gra*_*aul 8

你不能复制UIViews.或UIView子类.请尝试保留.