1

所以我有一个UIViewControllerinside aUIViewController和 inside a UIViewController,我正在尝试调整它的框架。但是,当我调用时setFrame:,它会调用viewDidLoad我正在尝试调整框架的特定视图控制器。但是当时frameSize不是我设置的那个。在此viewDidLoad我还调用了一个名为 的私有方法loadDataFromServer,它首先从内存中提取数据,然后调用服务器。因为它是从内存中加载数据,所以速度非常快,基本上是在 viewDidLoad 完成之前,因此还没有调整帧大小。因此,我首先看到大小/布局错误的视图,然后在从服务器获取数据后进行调整,此时viewDidLoad已完成并且框架调整良好。

如果我将loadDataFromServer呼叫移至,viewDidAppear那么一切看起来都很好。问题是我不确定何时viewDidAppear被调用。是否调用viewDidLoad过一次?或者它是在之后调用的viewWillAppear?有什么想法/解决方法吗?

    ContainerViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ContainerViewController"];
    vc.delegate = self;

    UINavigationController *newsfeedNavController = [[UINavigationController alloc] initWithRootViewController:vc];

    [self addChildViewController:newsfeedNavController];
    newsfeedNavController.view.frame = CGRectMake(0, 0, self.view.frameWidth, self.view.frameHeight);
    [self.view addSubview:newsfeedNavController.view];
    [newsfeedNavController didMoveToParentViewController:self];
    [newsfeedNavController release];
4

0 回答 0