IOS/自动布局:在显示的控制器关闭后更改为显示视图



我正在尝试让自动布局在具有滚动视图的视图控制器上正常工作。 当我第一次加载视图控制器时,它没有做我想要的。 但是,如果我启动第二个模式 VC - 它恰好是一个编辑 VC,然后关闭它,而不做任何其他事情,原始 VC 会正确布局(我想要的方式)。

起初,文本视图的大小不适应其内容,而只是反映情节提要中的占位符视图。

启动并关闭模式 VC 后,文本视图会采用其内容。

据我所知,在 2ndVC 发布过程中发生的任何事情都不会改变 1ndVC 的任何内容。

我的日志显示,ViewDidLoad 在最初加载时仅由第一个 VC 调用一次。 Viewwillappear由第一个VC调用两次:最初加载时,然后在第二个VC关闭后调用。

除了视图之外,还有其他方法会在您关闭呈现的 VC 时在演示 VC 中触发?

这是 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中的代码,用于获取文本视图的高度。 启动和关闭第二个 VC 之前和之后的结果更改

self.textView.text = listText;
float listHeight = self.textView.contentSize.height;
NSLog(@"listHeight%f",listHeight);

试试这个

-(void)viewDidLayoutSubviews
{
self.textView.text = listText;
float listHeight = self.textView.contentSize.height;
NSLog(@"listHeight%f",listHeight);
}

最新更新