У меня есть UISegmentedController У меня есть 3 UIViewControllers Как фотографии, рамки, галерея. Я добавляю эти 3 вида в Superview Используя 'addSubView'. В представлении кадров я добавил subview это имя как EditView. В EditView я сделал некоторые изменения, я хочу обновить эти изменения в представлении фреймов. Но когда я удаляю EditView из представления кадров, какой-либо один метод не вызывает. Затем, как обновить изменения из subview в супервизии. Дерево: UISegmentedController -> Рамки (Su) -> EditViews (Subview). Может ли кто-нибудь помочь мне ..Как обновить Superview с его Subview в iPad?
ответ
Я нашел код для обновления чего-либо в супервизии из подвью. Используйте этот код в своем представлении. Он вызовет ваш метод 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
Вы можете получить доступ к супер-обзору любого UIView
, используя superview
объект UIView
.
Нижеуказанный оператор будет в вашем EditView
.
FrameView* mySuperFrameView = (FrameView*)self.superview;
и следующее заявление может быть вызвано функцией супер-просмотра.
[mySuperFrameView updateMySuperView];
updateMySuperView является частью вашего superview
.
Извлечение представления из его супервизора освобождает его.
Внесите изменения, прежде чем удалять editView из его супервизора. Вы можете перезаписать removeFromSuperview
в своем editView и выполнять манипуляции с данными перед вызовом super removeFromSuperview
.
Или ваш контроллер просмотра может взять данные из editView перед его удалением.
@Jhaliya спасибо за пятна откоса. Я реализую ваш код в своем приложении. –
Привет, друг, я внедрил ваш код. i Called FrameView * mySuperFrameView = (FrameView *) self.superview; в EditView, но одна ошибка в этой строке, которая была «Запрос для элемента« супервизор »- это не структура или объединение». self.superview опция доступна. Любые идеи. PLS сохранить мой день .. –
просто изменить FrameView * mySuperFrameView = (FrameView *) self.view.superview; – iAmitWagh