Пользовательский подкласс UIView как свойство UIViewController - PullRequest
2 голосов
/ 09 февраля 2010

Я думал, что на самом деле у меня достаточно хорошая ручка для всей модели контроллера вида, но что-то, кажется, не имеет для меня особого смысла. Моя основная проблема заключается в добавлении пользовательского подкласса UIView в качестве свойства подкласса UIViewController.

Всякий раз, когда я присваиваю этому свойству действительный экземпляр подкласса UIView, ничего не происходит или происходит сбой кода.

Вот краткий обзор:

  • Главный контроллер имеет свой собственный вид, и он отлично загружается.
  • Затем я могу добавить этот подкласс UIView к основному контроллеру, создав его экземпляр, addSubview:ivar и т. Д. Никаких проблем там нет ...

Однако ... если бы я хотел иметь этот пользовательский 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 Ответ

8 голосов
/ 09 февраля 2010

Вы не можете скопировать UIView с. Или UIView подклассы. Попробуйте сохранить, вместо этого.

...