我有这样的架构:
----- main view
|
---right bar view
|
----- Navigation Controller view
|
------tableView Controller
当我在 tableViewController 上时,如何从窗口中删除右栏视图?
我有这样的架构:
----- main view
|
---right bar view
|
----- Navigation Controller view
|
------tableView Controller
当我在 tableViewController 上时,如何从窗口中删除右栏视图?
对要删除的视图使用标签,并使用该标签的引用删除视图。
喜欢:
在将右栏视图添加到主视图(self.view)之前添加一个标签
rightBarView.tag = 1;
并删除 pirticular 视图写入
for(UIView *temp in [self.view subviews]) {
if (temp.tag == 1) {
[temp removeFromSuperview];
}
}
希望这会有所帮助。
尝试这个:
[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];
在这种情况下,通知将在主视图和表视图控制器之间提供非常松散的连接。