所以我有一个UIViewController
inside 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];