Когда вы можете установить свойства объектов Interface Builder? - PullRequest
1 голос
/ 06 января 2012

Когда в жизненном цикле представления можно изменить значения объектов, которые были помещены в IB?

У меня есть степпер и UIImageView, которые я помещаю в представление в IB. Я поместил некоторые их значения (например, минимальный шаговый шаг и изображение UIImageView) в ViewDidLoad, но когда появляется вид, он использует минимальный шаговый шаг и изображение, установленные в IB.

Ответы [ 4 ]

0 голосов
/ 06 января 2012

Ах. Я вижу проблему. У меня был UILabel, который отображал значение, и у меня еще не было настроено подключение к значению UIStepper, пока значение не изменилось. Виноват. Спасибо, ребята!

0 голосов
/ 06 января 2012

Вы можете установить эти значения в viewDidLoad. Было бы полезно, если бы вы опубликовали свой viewDidLoad исходный код.

Поскольку я не видел ваш код, я могу только догадываться, что не так. Я подозреваю, что ваш контроллер представления имеет свойство, ссылающееся на степпер, и другое свойство, ссылающееся на представление изображения, и вы устанавливаете значения, используя эти свойства, например:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.stepper.minimumValue = minValueForStepper();
    self.imageView.image = imageForImageView();
}

Если ваш код имеет такую ​​базовую структуру, и она не работает, вы, вероятно, забыли подключить эти свойства в своем кончике.

0 голосов
/ 06 января 2012

Я не очень хорошо понимаю ваш вопрос, но если вы хотите установить IBOutlets, вы можете сделать это, например, программно, если у вас есть:

IBOutlet imageView *theImageView;

Вы можете установить одно из свойств UIImageView, например:

[theImageView setImage:[UIImage imageNamed:@"theimage.png"]];

Вы можете изучить все интересующие вас классы в представлении Xcode Organizer, здесь вы можете просмотреть все его свойства, методы, методы делегирования и т. Д.

0 голосов
/ 06 января 2012

Вы можете установить свойства, где вы пытаетесь.

Обязательно позвоните [super viewDidLoad]

- (void)viewDidLoad
{
    [super viewDidLoad];  
    // adjust views here
}

Возможно, вы забыли подключить свои IBOutlets в IB:

Это приведет к ошибке, которую компиляторне волнуетПо сути, ваш код слайдера будет эквивалентен

[nil setMinimumValue:newVal];

Я могу запустить следующий код в тестовой программе, и никаких жалоб или сбоев не произойдет

UIStepper * step = nil;
step.minimumValue = 5;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...