所以我在UIViewController
内和UIViewController
内有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];