2011-06-10 5 views
1

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

ответ

5

Я нашел код для обновления чего-либо в супервизии из подвью. Используйте этот код в своем представлении. Он вызовет ваш метод viewviewWillAppear. Вы можете использовать другой метод вместо 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

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

Нижеуказанный оператор будет в вашем EditView.

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

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

[mySuperFrameView updateMySuperView]; 

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

+0

@Jhaliya спасибо за пятна откоса. Я реализую ваш код в своем приложении. –

+0

Привет, друг, я внедрил ваш код. i Called FrameView * mySuperFrameView = (FrameView *) self.superview; в EditView, но одна ошибка в этой строке, которая была «Запрос для элемента« супервизор »- это не структура или объединение». self.superview опция доступна. Любые идеи. PLS сохранить мой день .. –

+0

просто изменить FrameView * mySuperFrameView = (FrameView *) self.view.superview; – iAmitWagh

0

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

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

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