IOS/Autolayout: изменение представления представления после закрытия представленного контроллера
Я пытаюсь заставить autolayout работать должным образом на контроллере представления с scrollview. Когда я загружаю контроллер вида в первый раз, он не делает то, что я хочу. Однако, если я запускаю второй модальный VC - который является Edit VC, а затем отклоняю его, не делая ничего другого, оригинальный VC выкладывается правильно (так, как я хочу).
Во-первых, размер текстового представления не адаптирован к его содержанию, а просто отражает вид заполнителя в раскадровке.
После запуска и закрытия модального VC текстовое представление адаптируется к своему содержанию.
Насколько я знаю, в ходе запуска 2ndVC не происходит ничего, что могло бы изменить что-либо с помощью 1st.
Мои журналы показывают, что ViewDidLoad вызывается первым VC только один раз, когда он первоначально загружается. Viewwillappear вызывается первым VC дважды: когда он первоначально загружается, а затем после закрытия 2-го VC.
Существуют ли какие-либо методы, кроме просмотра willappear, который срабатывает в представляемом ВК, когда вы отклоняете представленный?
Это код в VC1 для запуска второго VC.
UIStoryboard *storyBoard = self.storyboard;
IDEditListVC *editVC =
[storyBoard instantiateViewControllerWithIdentifier:@"editlist"];
editVC.list = _list;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: editVC];
[self presentModalViewController:nav animated:YES];
// Это код в VC1 viewWillAppear для получения высоты текстового представления. Результат изменяется до и после запуска и закрытия 2-го ВК
self.textView.text = listText;
float listHeight = self.textView.contentSize.height;
NSLog(@"listHeight%f",listHeight);
1 ответ
Попробуй это
-(void)viewDidLayoutSubviews
{
self.textView.text = listText;
float listHeight = self.textView.contentSize.height;
NSLog(@"listHeight%f",listHeight);
}