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);
 }
Другие вопросы по тегам