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