Как обновить Superview с его Subview в iPad? - PullRequest
1 голос
/ 10 июня 2011

У меня есть UISegmentedController У меня есть 3 UIViewControllers Как фотографии, рамки, галерея.Я добавляю эти 3 вида в Superview, используя 'addSubView'.В представлении кадров я добавил подпредставление с именем EditView.В EditView я сделал некоторые изменения, я хочу обновить эти изменения в представлении кадров.Но когда я удаляю EditView из представления фреймов, ни один из методов не вызывает.Тогда как обновить изменения из подпредставления в суперпредставлении.Дерево: UISegmentedController -> Frames (Su) -> EditViews (Subview).Может ли кто-нибудь помочь мне ..

Ответы [ 3 ]

5 голосов
/ 14 июня 2011

Я нашел код для обновления чего-то в суперпредставлении из подпредставления. Пожалуйста, используйте этот код в вашем подпредставлении. Это вызовет ваш суперпредставленный метод viewWillAppear. Вы можете использовать другой метод вместо viewWillAppear. У меня это работает.

for (UIView* next = [self.view superview]; next; next = next.superview) 
    {
        UIResponder* nextResponder = [next nextResponder];
        if ([nextResponder isKindOfClass:[UIViewController class]])
        {
            [(UIViewController*)nextResponder viewWillAppear:YES];
        }
    }

-Yuva.M

2 голосов
/ 10 июня 2011

Вы можете получить доступ к суперпредставлению любого UIView, используя свойство superview UIView.

. Выражение ниже будет в вашем EditView.

FrameView* mySuperFrameView = (FrameView*)self.superview;

и следующий оператор может вызывать функцию суперпредставления.

[mySuperFrameView updateMySuperView];

updateMySuperView является частью вашего superview.

0 голосов
/ 10 июня 2011

Удаление представления из его суперпредставления освобождает его.

Отправьте изменения перед удалением editView из его суперпредставления.Вы можете перезаписать removeFromSuperview в своем editView и выполнить манипуляции с данными перед вызовом super removeFromSuperview.

Или ваш контроллер представления может получить данные из editView перед его удалением.

...