2012-07-06 57 views
1

所以我有一個UIViewController裏面的UIViewControllerUIViewController裏面,我試圖調整它的框架。但是,當我撥打setFrame:時,它會調用該特定視圖控制器的viewDidLoad,我正在嘗試調整幀。但那時frameSize不是我設定的那個。在這個viewDidLoad我也調用一個叫做loadDataFromServer的私有方法,它首先從內存中提取數據,然後調用服務器。因爲它從內存加載數據,所以它確實很快,基本上在viewDidLoad完成之前,因此幀大小尚未調整。因此,我首先看到大小/佈局錯誤的視圖,然後在從服務器獲取數據後進行調整,此時viewDidLoad已完成且幀調整良好。viewDidLoad和設置UIViewControllerContainment中的幀大小

如果我將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]; 
+0

因爲我需要一些邏輯,它只是不是一個視圖。 – xonegirlz 2012-07-06 16:30:20

+0

你試圖完成什麼? – 2012-07-06 16:32:22

+0

我有一個containerviewcontroller和一個feedsviewcontroller,這個feedsviewcontroller有一些邏輯,並用作其他視圖控制器的子視圖。 – xonegirlz 2012-07-06 16:37:13

回答