0

私はそのようなスキーマを持っています:

----- main view    
       |
        ---right bar view
             |
              ----- Navigation Controller view
                     |
                     ------tableView Controller

tableViewControllerを使用しているときに、ウィンドウから右側のバービューを削除するにはどうすればよいですか?

4

2 に答える 2

0

これを試して:

 [self.view.superview.superview removeFromSuperview];

もう1つのアプローチは、はるかにクリーンで、通知を使用することです。メインビューを制御しているオブジェクトに通知を送信して、右側のバーサブビューを削除することができます。次のようになります。

メインビューコントローラの場合:

[[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(removeRightBar:) 
    name:@"RemoveRightBarNotification"
    object:nil];


- (void) receiveTestNotification:(NSNotification *) notification
{
     <REMOVE SUBVIEW FROM mainView>
}

そしてあなたのテーブルビューコントローラーで:

[[NSNotificationCenter defaultCenter] 
    postNotificationName:@"RemoveRightBarNotification" 
    object:self];

この場合、通知により、メインビューとテーブルビューコントローラ間の接続が非常に緩くなります。

于 2012-10-18T11:57:48.107 に答える
0

削除するビューにタグを使用し、そのタグの参照を使用してビューを削除します。
のように:
メインビュー(self.view)に右バービューを追加する前にタグを追加します

rightBarView.tag   =   1;

そして、特定のビューを削除するために書き込みます

for(UIView *temp in [self.view subviews]) {
    if (temp.tag == 1) {
        [temp removeFromSuperview];
    }
}

これがお役に立てば幸いです。

于 2012-10-18T13:01:14.983 に答える