我有一个 UISegmentedController 我有 3 个 UIViewControllers,比如照片、相框、画廊。我使用“addSubView”在 Superview 中添加这 3 个视图。在框架视图中,我添加了一个名为 EditView 的子视图。在 EditView 我做了一些更改,我想在框架视图中更新这些更改。但是,当我从框架视图中删除 EditView 时,任何单个方法都不会调用。然后如何从superview中的子视图更新更改。树:UISegmentedController -> Frames(Su) -> EditViews(Subview)。谁能帮我..
3685 次
3 回答
5
我找到了从子视图更新超级视图中某些内容的代码。请在您的子视图中使用此代码。它将调用您的超级视图 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
于 2011-06-14T04:41:14.323 回答
2
您可以UIView
使用superview
.UIView
以下语句将在您的EditView
.
FrameView* mySuperFrameView = (FrameView*)self.superview;
下一条语句可能是调用超级视图函数。
[mySuperFrameView updateMySuperView];
updateMySuperView是您的superview
.
于 2011-06-10T05:37:55.487 回答
0
从其父视图中删除视图会释放它。
在从其父视图中删除 editView 之前提交您的更改。您可以removeFromSuperview
在 editView 中覆盖,并在调用super removeFromSuperview
.
或者您的视图控制器可以在删除之前从 editView 获取数据。
于 2011-06-10T05:40:03.953 回答