0

我有这样的架构:

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

当我在 tableViewController 上时,如何从窗口中删除右栏视图?

4

2 回答 2

0

对要删除的视图使用标签,并使用该标签的引用删除视图。
喜欢:
在将右栏视图添加到主视图(self.view)之前添加一个标签

rightBarView.tag   =   1;

并删除 pirticular 视图写入

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

希望这会有所帮助。

于 2012-10-18T13:01:14.983 回答
0

尝试这个:

 [self.view.superview.superview removeFromSuperview];

另一种更简洁的方法是使用通知:您可以向控制您的主视图的对象发送通知,以便它删除它的右栏子视图。它会是这样的:

在您的主视图控制器中:

[[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 回答