1

私は UISegmentedController を持っています 写真、フレーム、ギャラリーのような 3 つの UIViewControllers を持っています。「addSubView」を使用して、Superview にこれら 3 つのビューを追加します。フレーム ビューでは、EditView という名前のサブビューを追加しました。EditView でいくつかの変更を行いました。これらの変更をフレーム ビューで更新したいと考えています。しかし、フレーム ビューから EditView を削除すると、単一のメソッドが呼び出されません。次に、スーパービューのサブビューからの変更を更新する方法。ツリー: UISegmentedController -> Frames(Su) -> EditViews(Subview)。誰でも私を助けることができます..

4

3 に答える 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];
        }
    }

-ユバ・M

于 2011-06-14T04:41:14.323 に答える
2

のプロパティをUIView使用して、任意のスーパー ビューにアクセスできます。superviewUIView

以下のステートメントは、EditView.

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

次のステートメントは、スーパー ビュー関数を呼び出している可能性があります。

[mySuperFrameView updateMySuperView];

updateMySuperViewは、superview.

于 2011-06-10T05:37:55.487 に答える
0

スーパービューからビューを削除すると、ビューが解放されます。

スーパービューから editView を削除する前に、変更を送信してください。removeFromSupervieweditView を上書きして、呼び出す前にデータ操作を行うことができますsuper removeFromSuperview

または、View Controller が editView からデータを取得してから削除することもできます。

于 2011-06-10T05:40:03.953 に答える