UIViewcontroller не перезагружается после уведомления от наблюдателя

Привет, у меня есть uiviewcontroller, который добавляет 4 дочерних представления после получения данных от веб-службы. Я добавляю наблюдателя в uiviewcontroller, который следит за полной загрузкой данных из веб-сервиса. После этого 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];


}

person user1424508    schedule 01.04.2013    source источник
comment
Вам не нужно будет вызывать setNeedsDisplay после добавления подвидов. Кто-то может помочь вам с фактической ошибкой, если вы разместите код для просмотра.   -  person Firoze Lafeer    schedule 02.04.2013


Ответы (1)


Вы вызываете 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. Представления и контроллеры представлений — две совершенно разные вещи.

person Firoze Lafeer    schedule 02.04.2013
comment
Вы правы, я добавил подвид, и представление появилось. Тем не менее, я создаю представление слайдера, где вы можете смахнуть и увидеть все дочерние представления. Используя self.view addsubview, я просто добавляю одно дочернее представление из иерархии, когда мне нужно несколько дочерних представлений. Как я могу это исправить? Спасибо за помощь, Лафир!! - person user1424508; 03.04.2013
comment
Я понял решение. Вы добавляете uiviewcontroller перед родительским контроллером и загружаете туда данные. Как только вы нажмете на следующий контроллер, который является родителем для представления ползунка, все дочерние представления уже добавлены в иерархию. Довольно простое решение кажется глупым, потому что не понял этого раньше: P - person user1424508; 04.04.2013