2011-06-10 4 views
1

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

答えて

5

スーパービューで何かをサブビューから更新するコードが見つかりました。あなたのサブビューでこのコードを使用してください。あなたのsuperview 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

UIViewのスーパービューにアクセスするには、superviewプロパティをUIViewとします。

以下の文は、EditViewに記載されています。

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

次のステートメントはスーパービュー機能を呼び出すことができます。

[mySuperFrameView updateMySuperView]; 

updateMySuperViewはあなたのsuperviewの一部です。

+0

ごスポットrespose用@Jhaliyaのおかげ。私は自分のアプリケーションにあなたのコードを実装します。 –

+0

こんにちは友人があなたのコードを実装しました。私はFrameView * mySuperFrameView =(FrameView *)と呼ばれるself.superview; EditViewでは、この行に 'メンバーのリクエスト' superview 'が構造体または共用体ではないバグが1つあります。 self.superviewオプションが利用可能になりました。それ以上のアイデア。 plsは私の日を節約します。 –

+0

ちょうど変更 FrameView * mySuperFrameView =(FrameView *)self.view.superview; – iAmitWagh

0

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

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

または、ビューコントローラは、編集ビューからデータを取り出してから削除することができます。

関連する問題