Я пытаюсь добавить UIView в свое приложение. он работает, но не так, как ожидалось. Я определил socialActionView в своем заголовке и сделал @synthesize в моем контроллере представления.UIView показывает сразу после загрузки NIB-файла?
nib-файл загружается, когда пользователь нажимает кнопку. Я думал, что мне нужно вызвать метод addSubview, чтобы показать представление. но он появляется даже, я не делаю этого.
Если я вызываю метод addSubView, приложение будет аварийно завершено, когда я загружу представление с сообщением «предупреждение: невозможно восстановить ранее выбранный кадр».
Может кто-нибудь объяснить, что здесь происходит? Я этого не понимаю.
- (IBAction)didTapOkSocialAction:(id)sender;
{
self.socialActionView = [[[NSBundle mainBundle] loadNibNamed:@"SocialActionViewController" owner:self options:nil] objectAtIndex:0];
//[self.view addSubview:socialActionView];
}
EDIT
в данном случае решение было установить file's владельца моего SocialActionViewController.xib к ViewController.h. Я еще не знаю, как добавить UIView из NIB, подключенного к другому классу контроллера представлений, чем контроллер вида, в который загружается представление.
ах я вижу. Я уже принял что-то подобное. но даже если я его сменил на это: UIView * socialActionView = [[[NSBundle mainBundle] loadNibNamed: @ "SocialActionViewController" владелец: self options: nil] objectAtIndex: 0]; он по-прежнему показывает UIView сразу. это обычное поведение? Мне просто интересно, для чего полезен addSubView, если он больше не нужен? – rockstarberlin
@rockstarberlin: Вероятно, вам лучше было бы сразу загрузить его с помощью свойства 'hidden', установленного на' YES', и просто отобразить его, когда пользователь нажмет кнопку. Но это зависит от структуры и иерархии вашего приложения, поэтому я действительно не мог сказать. –
@rockstarberlin: Конечно, addSubview по-прежнему необходим, как раз в других случаях.Что касается вашего второго теста: это странно - компилятор должен хотя бы выпустить предупреждение - если у вас есть свойство и локальная переменная с тем же именем. –