IOS / Autolayout:在提交的控制器被解雇后更改为呈现视图

时间:2018-01-18 19:53:57

标签: ios autolayout dismissviewcontroller

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

首先,textview的大小不适合其内容,但仅仅反映了故事板中的占位符视图。

启动并解除模态VC后,textview确实采用了其内容。

据我所知,在第二次发射升级过程中没有任何事情可以改变第一次发生的任何事情。

我的日志显示ViewDidLoad在最初加载时只被第一个VC调用一次。 Viewwillappear由第一个VC调用两次:当它最初加载时,然后在第二个VC被解除后。

当你解雇一个提出的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中的代码,用于获取文本视图的高度。启动和解除第二个VC之前和之后的结果更改

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

1 个答案:

答案 0 :(得分:0)

试试这个

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