UIViewcontroller在观察者通知后没有重新加载

时间:2013-04-01 23:34:42

标签: objective-c uiviewcontroller afnetworking nsnotificationcenter nsnotifications

您好我有一个uiviewcontroller,它在从Web服务接收数据后添加了4个子视图。我向uiviewcontroller添加了一个观察者,该监视器监视从webservice完全加载数据的时间。一旦完成,uiviewcontroler会添加4个子视图。

然而我的问题是除非我切换到另一个标签视图而不是再次返回该标签,否则它不会这样做。

有没有办法重新加载此页面?我在响应来自观察者的通知的函数下使用了[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];


}

1 个答案:

答案 0 :(得分: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];  
顺便说一句,你应该避免给出像childview2这样的视图控制器名称。视图和视图控制器是两个完全不同的东西。