Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone viewDidLoad和设置UIViewControllerContainement中的帧大小_Iphone_Objective C_Ios_Ipad_Uiviewcontroller - Fatal编程技术网

Iphone viewDidLoad和设置UIViewControllerContainement中的帧大小

Iphone viewDidLoad和设置UIViewControllerContainement中的帧大小,iphone,objective-c,ios,ipad,uiviewcontroller,Iphone,Objective C,Ios,Ipad,Uiviewcontroller,所以我在UIViewController和UIViewController中都有一个UIViewController,我试图调整它的框架。但是,当我调用setFrame:,它调用我试图调整帧的特定视图控制器的viewDidLoad。但是当时的帧大小不是我设置的。在这个viewDidLoad中,我还调用了一个名为loadDataFromServer的私有方法,该方法首先从内存中提取数据,然后调用服务器。因为它是从内存加载数据,所以速度非常快,基本上在viewDidLoad完成之前,因此帧大小尚未调

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

如果我将loadDataFromServer调用移动到ViewDidDisplay,那么一切看起来都很好。问题是,我不确定何时调用viewDidAppear。是否在viewDidLoad一次后调用?还是在ViewWill出现后调用?对此有什么想法/解决办法吗

    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];

因为我需要一些逻辑,它不是一个视图。你具体想做什么?我有一个containerviewcontroller和一个feedsviewcontroller,此feedsviewcontroller中包含一些逻辑,并用作其他ViewController的子视图。在将特定视图控制器的主视图添加到父视图控制器的视图层次结构后,将调用ViewDidDisplay。如果必须支持早期版本的iOS,请在iOS 5上使用-viewWillLayoutSubviews或-ViewDidDisplay。调用这些方法时,视图控制器的视图将具有正确的边界。