0

嗨我有一個uiviewcontroller,收到來自webservice的數據後添加4個子視圖。我向uiviewcontroller添加一個觀察者,觀察從webservice完全加載數據的時間。一旦它,uiviewcontroler添加4個子視圖。UIViewcontroller無法從觀察者通知後重新加載

但是我的問題是它不這樣做,除非我切換到另一個選項卡視圖比再次返回到該選項卡。

有沒有辦法重新加載此頁面?我在函數下使用了[uiviewcontroller.view setNeedsDisplay],該函數響應來自觀察者的通知,但視圖不刷新。

感謝您的球員的幫助:)

這裏是我的觀察器功能:

-(void)projectListFromServer:(NSNotification *) response 

{ 
NSLog(@"%@",response); 


for (int i = 0; i < 4; i++) 
{ 
    childview2 = [self.storyboard instantiateViewControllerWithIdentifier:(@"slider")]; 
    childview2.image = @"wicked"; 
    childview2.couponID = @"cool"; 

    NSLog(@"%@", self.childview2.couponID); 
    [self addChildViewController:childview2]; 
} 

[self.childview.view setNeedsDisplay]; 


} 
+0

添加子視圖後,您不需要調用'setNeedsDisplay'。有人可以幫助你實際的錯誤,如果你張貼代碼看看。 –

回答

0

要調用addChildViewController,但後來它看起來像你實際上並沒有增加childview2的視圖層次到這個包含視圖控制器的視圖層次結構。

你需要不同的地方在當前的層次,你居然要插入這些新的觀點做這樣的事情,調整課程:

[self addChildViewController:self.childview2]; // assuming childview2 is a @property 
[self.view addSubview:self.childview2.view]; // adjust based on your actual hierarchy 
[self.childview2 didMoveToParentViewController:self]; 

BTW,你應該避免給視圖控制器的名字如childview2。視圖和視圖控制器是兩個完全不同的東西。

+0

你是對的我添加了子視圖和彈出的視圖。但是,我正在創建一個滑塊視圖,您可以在其中側滑並查看所有子視圖。通過使用self.view addsubview當我需要多個childview時,我只需添加一個childview或heirachy。我該如何解決?感謝您的幫助Lafeer! – user1424508

+0

我想出瞭解決方案。您可以在父控制器之前添加一個uiviewcontroller並在其中加載數據。一旦你推到ne下一個控制器,它是滑塊視圖的父級控制器,所有的子視圖都已經添加到heirachy。很簡單的解決方案感覺很愚蠢,因爲之前沒有弄清楚:P – user1424508