【发布时间】:2018-01-18 19:53:56
【问题描述】:
我正在尝试让自动布局在带有滚动视图的视图控制器上正常工作。当我第一次加载视图控制器时,它并没有做我想做的事。但是,如果我启动第二个模态 VC——恰好是一个 Edit VC,然后将其关闭,而不做任何其他事情,原始 VC 会正确布局(我想要的方式)。
起初,textview 的大小不适应它的内容,而只是反映了故事板中的占位符视图。
在启动并关闭模态 VC 后,textview 会采用其内容。
据我所知,在 2ndVC 启动的过程中没有发生任何可以改变 1st 的任何事情。
我的日志显示 ViewDidLoad 在最初加载时仅由第一个 VC 调用一次。 Viewwillappear 被第一个 VC 调用两次:当它最初加载时,然后在第二个 VC 被关闭后。
当您关闭呈现的 VC 时,除了 view 之外,还有其他方法会在呈现的 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中获取文本视图高度的代码。启动和关闭 2nd VC 前后的结果变化
self.textView.text = listText;
float listHeight = self.textView.contentSize.height;
NSLog(@"listHeight%f",listHeight);
【问题讨论】:
-
你在哪里执行显示第二个 VC 的代码
-
它在按下编辑按钮时被调用。编辑按钮有一个调用代码的处理程序。
-
看来你的问题在于自动布局,我认为在展示模型 VC 后它得到“修复”的事实只是一个副作用。因此,让我们处理根本原因。向我们展示您的限制条件,
scrollView和textView之间的关系等。
标签: ios autolayout dismissviewcontroller