0

嗨,我有一个 uiviewcontroller,它在从 web 服务接收数据后添加 4 个子视图。我向 uiviewcontroller 添加了一个观察者,该观察者会在数据完全从 web 服务加载时进行观察。一旦完成,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];


}
4

1 回答 1

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. 视图和视图控制器是两个完全不同的东西。

于 2013-04-02T04:33:19.703 回答