Подклассы представления UIViewControllers - PullRequest
0 голосов
/ 04 октября 2011

так, например, у меня есть это в моем контроллере uiview

- (void)loadView {
    CGRect frame = [[UIScreen mainScreen] applicationFrame];
    MyDetailView *detailView = [[MyDetailView alloc] initWithFrame:frame];
    self.view = detailView;
    [detailView release];
}

теперь я добавляю несколько ярлыков в свое представление, например

@property(nonatomic, retain) UILabel *descriptionLabel;

, если я хочу установить это в моем ViewControllerбудет обычно делать что-то вроде

self.view.descriptionLabel.text = @"foo";

, потому что это будет генерировать предупреждение, я могу присвоить ему

[[(MyDetailView*)self.view descriptionLabel] setText:@"foo"];

есть ли лучший способ для этого?FE говорит моему ViewController, что атрибут представления является подклассом?Есть ли способ для этого или я должен сохранить мой подробный вид в дополнительном ivar?

спасибо за ваши подсказки!

Ответы [ 3 ]

1 голос
/ 04 октября 2011

Я не верю, что что-то не так с тем, что вы продемонстрировали. Я мог бы написать это немного по-другому, но это, вероятно, вопрос предпочтения:

myView = (MyDetailView *)[self view];
[myView setDescriptionLabel:@"foo"];
0 голосов
/ 05 октября 2011

Исаак ответит отлично, если вы хотите сделать это программно. Просто настройте свое собственное представление как собственную переменную, чтобы вы могли рисовать и передавать информацию в нее и из нее в любом месте файла. Этот ответ является просто альтернативой для добавления к вашим опциям. Если вы сделали это в IB, самым простым способом было бы выбрать View контроллера представления и установить класс по умолчанию UIView в ваш собственный MyDetailView. Затем вызов self.view позволит напрямую получить доступ к свойствам вашего пользовательского представления.

0 голосов
/ 05 октября 2011

То, как вы это написали, похоже, что вы устанавливаете UILabel в значение NSString, так что, возможно, это всего лишь редактирование. Вы пробовали

self.view.descriptionLabel.text = @"foo";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...